Java操作类库
• java.sql., javax.sql.; 这2个包只是接口类
• 根据数据库版本和JDBC版本合理选择
连接字符串:
jdbc:mysql://localhost:3306/mydb,
其中localhost为本机IP地址,3306为端口,mydb为数据库名
Java连接数据库操作步骤
1.注册驱动,这里的驱动类要根据Mysql的版本选择,最新版的驱动类是"com.mysql.cj.jdbc.Driver",所以第一步模板为:
try{
Class.forName("com.mysql.cj.jdbc.Driver");//注册最新的驱动类
System.out.println("注册驱动成功!");
}catch(ClassNotFoundException e1){
System.out.println("注册驱动失败!");
e1.printStackTrace();
return;
}
2.定义连接字符串,我这里的数据库名为test,所以第二步为:
String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC";//熟记模板
3.建桥Connection,:URL,数据库用户名,Mysql密码;
4.构建数据库执行者Statement
5.执行SQL语句并返回结果到结果集ResultSet里,
– 使用executeQuery()执行select语句,返回结果放在ResultSet
– 使用executeUpdate()执行insert/update/delete,返回修改的行数 – 一个Statement对象一次只能执行一个命令
6.采用while循环和next()方法遍历ResultSet里的每一行,
7.采用getInt(),getString(),getDouble()等方法输出结果集每一行每一列的数据,上述方法对应的数据类型,括号里可以是列数或者列的名。
8.最后关闭Statement和ResuleSet,
9.再关闭Connection,不关闭对内存的损耗较大,
Connection conn = null;
try {
//构建Java和数据库之间的桥梁:URL,用户名,密码
conn = DriverManager.getConnection(url, "root", "123456");
//构建数据库执行者
Statement stmt = conn.createStatement();
System.out.println("创建Statement成功!");
//执行SQL语句并返回结果到ResultSet
ResultSet rs = stmt.executeQuery("select bookid, bookname, price from t_book order by bookid");
//开始遍历ResultSet数据
while(rs.next())//从第0行开始查询,所以一开始看第一行有没有数据,有就执行,相当于把结果集里的记录一行一行打印出来
{
System.out.println(rs.getInt(1) + "," + rs.getString(2) + "," + rs.getInt("price"));
}
rs.close();//ResultSet需要关闭,否则占用内存;
stmt.close();
} catch (SQLException e){
e.printStackTrace();
}
finally
{
try
{
if(null != conn)
{
conn.close();
}
}
catch (SQLException e){
e.printStackTrace();
}
}
}
}