JDBC部分知识点

来源:互联网 发布:龙泉驾校网络上课流程 编辑:程序博客网 时间:2024/06/02 01:59
一、JDBC --用java代码操作数据库  --CRUD(增删改查)
1.导入MySql驱动包
2.选择要连接的是哪一种数据库
Class.forName("com.mysql.jdbc.Driver");对类进行加载
3.通过主机号、端口号、用户名、密码创建一个连接
String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&CharacterEncoding=utf8";
String user = "root";
String password = "1234";
//DriverManager.getConnection(url,user,password);
4.选择要操作的数据库
Connection conn = DriverManager.getConnection(url,user,password);
5.打开一个命令窗口写SQL语句
PreparedStatment psta = conn.prepareStatment("select * from emp");
6.执行SQL语句,查看结果。
ResultSet rs = psta.executeQuery();
List<Emp> emplist = new ArrayList<Emp>();
While(re.next()){
emplist.add(new Emp(rs.getInt("sno"),rs.getString("sname"),rs.getInt("Salary"),rs.getString


("job"));
}
如果是增删改,则返回受影响的行数
如果是查询,则返回结果集
7.如果是查询,需要将结果集映射到JavaBean中
*别忘了关闭(倒着关):
if(rs!=null){
rs.close();
}
if(psta!=null){
psta.close();
}
if(conn!=null){
conn.close();
}
二、jdbc封装查询要考虑的问题
1.返回值类型不确定
2.sql语句不同(参数传递)
3.语句中可能带有参数(参数传递)
*把方法作为参数传进来
JDK1.8之前处理方式:new一个接口,里面有一个抽象方法,当做匿名内部类
List<Student> studentlist = JdbcUtil.executeQuery("select * from student",
new RowMap<Teacher>(){
public TeacherRowMapping(ResultSet rs){
studentlist.add(new Student(rs.getInt(sno),rs.getString(sname),rs.getInt


(Score),rs.getString(Ssex));
}
},null)
4.处理ResultSet方式不同
三、方法封装
添加:
1.接收表单传进的参数
String sno = req.getParameter("sno");
2.将参数封装到JavaBean
Student student = new Student();
student.setSno(sno);
3.调用服务进行添加
IstudentService service = new StudentServiceImpl();(如果这个还没写好,用null)
4.重定向到列表页
resp.sendRedirect("add.jsp");
修改:
1.接收sno
String sno = req.getParameter("sno");
2.通过sno查询想要修改的数据
IstudentService service = new StudentServiceImpl();
Student student = service.getStudent(sno);
3.将数据放进作用域
req.setAttribute("student",student);
4.转发到修改页面
req.getRequestDispatcher("student").forward(req,resp);
原创粉丝点击