jdbc它是java语言操作数据库的技术,通过java技术代码发送sql语句到数据库,并执行语句
DriverManager 是驱动管理器,它是sun提供
Connection 用来关联数据库进行连接的对象
PreparedStatement 用来进行发送sql到数据库的对象
Resultset 这个对象是查询操作专门使用,它就是结果集对象
jdbc创建基本步骤
public void getEmpbyid(){
Connection connection = null;
PreparedStatement ps =null;
ResultSet resultSet =null;
try{
//创建jdbc第一步 加载驱动
//然后用Connection连接数据库
Class.forName("com.mysql.jdbc.Driver");
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool","root","0258");
//创建statement对象,下面号执行sql语句
//第三步写sql语句
//用Connection对象的prepareStatement方法获得 PrepareStatement
String sql = "INSERT INTO grade(gradeName)VALUES(?)";
ps=connection.prepareStatement(sql);
//给sql里的?号赋值
ps.setString(1,"y2");
//最后用PrepareStatement的executeUpdate方法返回修改行数
int count = ps.executeUpdate();
System.out.println("修改行数"+count);
//查询 之前都一样查询用的是executeQuery返回查询的ResultSet对象结果集
resultSet = ps.executeQuery(sql);
while (resultSet.next()){
int id = resultSet.getInt("gradeID");
String name =resultSet.getString("gradeName");
System.out.println(id +" "+name);
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if (ps!=null){
ps.close();
}
if (connection!=null){
connection.close();
}
} catch (Exception e){
e.printStackTrace();
}
}
}
jdbc编写模式
com.qhit. 项目名称
Test(表示层)
service(业务逻辑层)
dao(数据表示层) 里面一般有个Base Dao工具类
pojo (表示层)
数据一层层传递 ,写时从下向上写
service(业务逻辑层) dao(数据表示层) 里面一般写有接口和接口实现类,
因为接口可以多继承,好解耦合、(里面写对数据库的操作)
因为从下开始写,在pojo中写实体类对应表
在Dao包中写接口,接口写操作数据的方法,而在Dao中再创个impl包写接口的实现类
里面类继承BaseDao类和连接接口,根据BaseDao类提供的方法写操作数据的具体过程
再写业务逻辑层service
早service包中写接口,接口写操作数据的方法(这时和上面Dao中的方法一样),而在service中再创个impl包写接口的实现类(它们的操作一样,这个可通过创建Dao包接口对象,它指向接口实例来调用Dao包的接口实现类)
private SubjectDao subjectDao= new SubjectDaoimpl();//这里用接口类,可以使用连接SubjectDao接口的所有的类,实现解耦合
//这里的service业务逻辑层的抽象方法都是dao里抽象方法,因为数据是一层层传递的
//所以这实现类也是调用dao包里impl包里的实现类的方法
最后写表示层(一般就是测试类)
测试类通过一层层的传递来改变实体层
里面具体的内容写法和BaseDao工具类理解放在Untitled1中