1,注册驱动
2,获取连接
3,创建 statement或者 preparedstatement对象
(对sq语句进行编译,翻译成数据库的方言)
4,执行sql语句;
5,处理结果集(没有结果直接跳到6步)
6,关闭资源
1,注册驱动
下载JDBC的驱动jar文件
右击工程的Build Path中的Configure Build Path操作如下:
在Lirbaries点击Add JARS或Add External jars,将mysql-connector-java-5.1.46.jar添加即可
2,代码如下
package com.briup.web.jdbc;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Conn {
/*
* 连接数据库的四要素
*/
/*驱动类*/
private String driver="oracle.jdbc.driver.OracleDriver";
/*数据库的请求资源定位符URL
* jdbc:oracle协议
* thin连接方式,瘦连接
* @127.0.0.1 数据库所在的ip
* 1521端口
* XE数据库的名字
* */
//private String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
private String url="jdbc:oracle:thin:@192.168.43.216:1521:XE";
/*连接数据库的用户名*/
private String user="estore";
/*连接数据库的用户密码*/
private String password="estore";
public static void main(String[] args) {
Student stu=new Student(3, "jake", 34, new java.util.Date());
//new Conn().insertStu(stu);
new Conn().selectStu();
}
public void insertStu(Student stu){
Connection conn=null;
PreparedStatement ps=null;
//注册驱动 (反射)
try {
Class.forName(driver);
//获取连接
conn=DriverManager.getConnection(url, user, password);
String sql="insert into s_stu values(?,?,?,?)";
//创建PreparedStatement对象
ps=conn.prepareStatement(sql);
//给问号赋值,第一个参数表示第几个问号,
//第二个参数表示替换问号的值
ps.setLong(1, stu.getId());
ps.setString(2, stu.getName());
ps.setInt(3, stu.getAge());
//getTime()获取时间戳long类型,
//new java.sql.Date(new java.util.Date().getTime())
ps.setDate(4, new Date(stu.getBirth().getTime()));
//执行sql语句
ps.execute();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(ps!=null)ps.close();
if(conn!=null)conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void selectStu(){
Connection conn=null;
PreparedStatement ps=null;
//接受数据库查询回来的一行一行内容
ResultSet rs=null;
try {
//注册驱动
Class.forName(driver);
//获取连接
conn=DriverManager.getConnection(url, user, password);
String sql="select id,name,age,birth from s_stu";
//构建PreapredStatement对象
ps=conn.prepareStatement(sql);
//执行sql语句的过程
rs=ps.executeQuery();
//处理结果,rs.next()判断封装在resultset结果中下一行是否
//有值
/*(id,name,age,birth)
* (id,name,age,birth)
* (id,name,age,birth)
*/
//list集合,存储数据用的,<>中的内容指明只能存放什么对象
List<Student> list=new ArrayList<>();
while(rs.next()){
long id=rs.getLong(1);
String name=rs.getString(2);
int age=rs.getInt(3);
//java.sql.Date
Date date=rs.getDate(4);
//把java.sql.Date转化为java.util.Date
java.util.Date birth=new java.util.Date(date.getTime());
//构建Student对象
Student s=new Student(id, name, age, birth);
//把对象添加到集合中
list.add(s);
}
for(Student s:list){
System.out.println(s.getId()+"--"+s.getName());
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void selectStuByName(String name){}
public void updateStu(Student stu){}
public void deleteStu(long id){};
}