JDBC通俗来说就是Java连接数据库的技术
接下来就讲讲数据库怎么连接的
连接步骤~
1.需要连接数据库的jar包:mysql-connector-java-5.1.18-bin.jar,如图:
2.注册驱动
mysql驱动
oracle驱动
。。。。。
driver = "com.mysql.jdbc.Driver";
项目中要有jar包~mysql-connector-java-5.1.18-bin.jar
3.获取连接
连接 url
url
jdbc:oracle:thin:@localhost:1521:XE---这个
jdbc:mysql://127.0.0.1:3306/zmysql
user
password
url = "jdbc:mysql://127.0.0.1:3307/ssh?useUnicode=true&characterEncoding=utf8";
user = "root";
password = "root";
4.创建pstmt/stmt对象
如果有占位符替换占位符
String sql = "insert into tb_student values(null,'"+stu.getName()+"',"+stu.getAge()+")";
pstmt = conn.prepareStatement(sql);
5.执行sql
int executeUpdate();
增 删 改
Result executeQuery();
查
execute();
int num = pstmt.executeUpdate();
System.out.println("成功插入"+num);
6.如果有结果集,处理结果集
ResultSet rs=null;//结果集
7.释放资源
Connection
PreparedStatement
ResultSet--结果集
后创建的先释放
ConnectionFactory.close(null, pre, con);
第一个参数是结果集,如果没有就为null~
代码编写:
把注册驱动,获取连接,关闭连接释放资源封装成了一个类,这样方便使用~
ConnectionFactory:
public class ConnectionFactory {
private static String driver;
private static String url;
private static String user;
private static String password;
static{
//1.注册驱动
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://127.0.0.1:3307/ssh?useUnicode=true&characterEncoding=utf8";
user = "root";
password = "root";
}
/**
* 2.获取连接
* */
public static Connection getConnection() throws Exception {
Class.forName(driver);
return DriverManager.getConnection(url, user, password);
}
/**
* 释放资源
* */
public static void close(ResultSet rs,
PreparedStatement pstmt ,Connection conn) throws SQLException{
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
}
}
在主类中~有一个查询所有学生的方法~
public void queryAll(){
try {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;//结果集
try{
//获取连接
conn = ConnectionFactory.getConnection();
//创建pstmt对象
String sql = "select * from tb_student";
pstmt = conn.prepareStatement(sql);
//执行查询
rs = pstmt.executeQuery();
//处理结果集
while(rs.next()){
long id = rs.getLong("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id+"=="+name+"=="+age);
}
}finally{
//释放资源
ConnectionFactory.close(rs, pstmt, conn);
}
} catch (Exception e) {
e.printStackTrace();
}
}