概述
第一关
编程要求
在右侧编辑器补充代码,完成下列相应任务:
加载数据库驱动;【平台数据库连接的用户(user)为root,密码(password)为123123】
创建数据库mysql_db;
创建表student。
student表结构为:
| 字段名 | 类型 | 备注 | 约束 |
| :————: | :————: | :————: |
| id | int | 学生id | 非空 |
| name | varchar(20) | 学生姓名 | 无 |
| sex | varchar(4) | 学生性别 | 无 |
| age | int | 学生年龄 | 无 |
测试说明平台会对你编写的代码进行测试: 测试输入:无 预期输出: id INT(11) name VARCHAR(20) sex
VARCHAR(4) age INT(11)
实训代码
import java.sql.*;
public class jdbcConn {
public static void getConn() {
/********** Begin **********/
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
/********** End **********/
/********** Begin **********/
Connection conn = null;
Statement statement = null;
//2.建立连接并创建数据库和表
String url = "jdbc:mysql://127.0.0.1:3306/";
String user = "root";
String password = "123123";
try{
conn = DriverManager.getConnection(url,user,password);
statement = conn.createStatement();
String sql1="drop database if exists mysql_db";
String sql2="create database mysql_db";
statement.executeUpdate(sql1);//执行sql语句
statement.executeUpdate(sql2);
statement.executeUpdate("use mysql_db");
String sql = "create table student("+
"id int not null,"+
"name varchar(20),"+
"sex varchar(4),"+
"age int)";
statement.executeUpdate(sql);
}catch (SQLException e){
e.printStackTrace();
}
/********** End **********/
finally {
try {
if(statement!=null)
statement.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第二关
编程要求
在右侧编辑器补充代码,向上一章节中已创建好的数据库mysql_db中的表student中插入数据,并将插入的数据进行输出:
| id | name | sex | age |
| :————: | :————: | :————: |
| 1 | 张三 | 男 | 19 |
| 2 | 李四 | 女 | 18 |
| 3 | 王五 | 男 | 20 |
提示:已为你封装好student类,可在右侧文件夹中查看,此类可直接使用。
测试说明平台会对你编写的代码进行测试: 测试输入:无 预期输出: 1 张三 男 19 2 李四 女 18 3 王五 男 20
实训代码
package jdbc;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class jdbcInsert {
public static void insert(){
/********** Begin **********/
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver" );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
/********** End **********/
Connection conn = null;
PreparedStatement statement = null;
/********** Begin **********/
//连接并插入数据
try{
conn = DriverManager.getConnection ("jdbc:mysql://127.0.0.1:3306/mysql_db","root","123123" );
PreparedStatement s = conn.prepareStatement("insert into student values(?,?,?,?)");
s.setInt(1,1);s.setString(2,"张三");s.setString(3,"男");s.setInt(4,19);
s.executeUpdate();
s.setInt(1,2);s.setString(2,"李四");s.setString(3,"女");s.setInt(4,18);
s.executeUpdate();
s.setInt(1,3);s.setString(2,"王五");s.setString(3,"男");s.setInt(4,20);
s.executeUpdate();
s=conn.prepareStatement("select * from student");
ResultSet r = s.executeQuery();
while (r.next()) {
System.out.println(r.getString(1)+" "+r.getString(2)+" "+r.getString(3)+" "+r.getString(4));
}
} catch (SQLException e) {
e.printStackTrace();
}
/********** End **********/
finally {
try {
if (statement != null)
statement.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第三关
编程要求
这里是引用根据提示,在右侧编辑器补充代码,编写一条新增SQL语句和任意一条错误的SQL语句,提交事务;要求第一条新增语句在数据库中被修改,其后错误SQL语句不执行。
新增插入语句具体要求如下:
在mysql_db数据库student表中新增一条id为4,name为赵六,sex为女,age为21的数据。
提示:每一条SQL语句之后都可提交事务。
测试说明平台会对你编写的代码进行测试: 测试输入:无 预期输出: 1 张三 男 19 2 李四 女 18 3 王五 男 20 4 赵六 女 21
实训代码
package jdbc;
import java.sql.*;
public class jdbcTransaction {
public static void transaction(){
try {
Class.forName("com.mysql.jdbc.Driver" );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn = null;
PreparedStatement ps = null;
/********** Begin **********/
//连接数据库并开启事务
try {
conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/mysql_db","root","123123" );
conn.setAutoCommit(false);
ps = conn.prepareStatement("insert into student(id,name,sex,age) values(4,'赵六','女',21)");
ps.executeUpdate();
conn.commit();
ps = conn.prepareStatement("insert in student(id,name,sex,age) values(5,'钱七','男',18)");
ps.executeUpdate();
conn.commit();
} catch (SQLException e) {
try {
//事务回滚
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
/********** End **********/
finally {
try {
if(ps!=null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
}
最后
以上就是故意黄豆为你收集整理的Java高级特性 - JDBC(上)的全部内容,希望文章能够帮你解决Java高级特性 - JDBC(上)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复