当前位置:Gxlcms > 数据库问题 > JDBC的链接及封装

JDBC的链接及封装

时间:2021-07-01 10:21:17 帮助过:27人阅读

将1,2步  close  sql语句的输出 进行封装

  1. public class JdbcUtil {
  2. public static Connection getConnection(){
  3. Connection con =null;
  4. try {
  5. //1.加载驱动
  6. Class.forName("com.mysql.jdbc.Driver");
  7. //2.创建连接
  8. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/yyy", "root", "123456");
  9. } catch (ClassNotFoundException e) {
  10. // TODO Auto-generated catch block
  11. e.printStackTrace();
  12. } catch (SQLException e) {
  13. // TODO Auto-generated catch block
  14. e.printStackTrace();
  15. }
  16. return con;
  17. }
  18. public static void close(Connection con){
  19. try {
  20. if(con!=null){
  21. con.close();
  22. }
  23. } catch (SQLException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. }
  27. }
  28. public static int executeUpdate(String sql,Object[] params){
  29. Connection con = getConnection();
  30. int result =0;
  31. try {
  32. PreparedStatement pstmt = con.prepareStatement(sql);
  33. if(params!=null){
  34. for(int i=0;i<params.length;i++){
  35. pstmt.setObject(i+1, params[i]);
  36. }
  37. }
  38. result = pstmt.executeUpdate();
  39. } catch (SQLException e) {
  40. // TODO Auto-generated catch block
  41. e.printStackTrace();
  42. }finally {
  43. close(con);
  44. }
  45. return result;
  46. }
  47. }
JAVABEAN 又叫 bean 等 跟数据库里面的表发生映射
  1. package com.neuedu.bean;
  2. import com.sun.org.apache.xml.internal.security.Init;
  3. public class Student {
  4. private Integer sid;
  5. private String sname;
  6. private Integer age;
  7. private Integer sex;
  8. //这四句代码就是javabean
  9. public Integer getSid() {
  10. return sid;
  11. }
  12. public void setSid(Integer sid) {
  13. this.sid = sid;
  14. }
  15. public String getSname() {
  16. return sname;
  17. }
  18. public void setSname(String sname) {
  19. this.sname = sname;
  20. }
  21. public Integer getAge() {
  22. return age;
  23. }
  24. public void setAge(Integer age) {
  25. this.age = age;
  26. }
  27. public Integer getSex() {
  28. return sex;
  29. }
  30. public void setSex(Integer sex) {
  31. this.sex = sex;
  32. }
  33. public Student(Integer sid, String sname, Integer age, Integer sex) {
  34. super();
  35. this.sid = sid;
  36. this.sname = sname;
  37. this.age = age;
  38. this.sex = sex;
  39. }
  40. public Student() {
  41. super();
  42. // TODO Auto-generated constructor stub
  43. }
  44. @Override
  45. public String toString() {
  46. return "Student [sid=" + sid + ", sname=" + sname + ", age=" + age + ", sex=" + sex + "]";
  47. }
  48. }
简化 使用动态数组 //一个方法中只能有一个动态参数 //动态参数必须位于参数列表的最后一个 将之前object[] 改成 动态数组 object...
  1. public static int executeUpdate(String sql,Object... params)

 增删改 方法简化

  1. public static int update(Student student){
  2. return JdbcUtil.executeUpdate("update student set sname=?,age=?,sex=? where sid=?",student.getSname(),student.getAge(),student.getSex(),student.getSid());
  3. }
  4. public static int add(Student student) {
  5. return JdbcUtil.executeUpdate("insert into student (sid,sname,age,sex) values(?,?,?,?)", student.getSid(),student.getSname(),student.getAge(),student.getSex());
  6. }
  7. public static int delete(int id){
  8. return JdbcUtil.executeUpdate("delete from student where sid=?", id);
  9. }

 

查询不适合用数组,因为不知道有多少数据;用集合,集合有两种  ArrayList,LinkedList 基于ArrayList(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。 用到 游标 的操作:rs.next() ,判断有没有下一行数据,有的话 游标推到下一行,并返回true ;反之 返回false 。 首先从最上面开始 技术分享 技术分享 第一次调用rs.next() 就会调用首行的下一行,也就是第一行数据
  1. public static List<Student> getStudents(){
  2. Connection con = null;
  3. List<Student> list = new ArrayList<>();
  4. try {
  5. Class.forName("com.mysql.jdbc.Driver");
  6. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/yyy", "root", "123456");
  7. PreparedStatement pstmt = con.prepareStatement("select * from student");
  8. ResultSet rs = pstmt.executeQuery();
  9. while(rs.next()){
  10. Student student=new Student();
  11. student.setSid(rs.getInt("sid"));
  12. student.setSname(rs.getString("sname"));
  13. student.setSname(rs.getString("age"));
  14. student.setSname(rs.getString("sex"));
  15. list.add(student);
  16. }
  17. } catch (ClassNotFoundException e) {
  18. // TODO Auto-generated catch block
  19. e.printStackTrace();
  20. } catch (SQLException e) {
  21. // TODO Auto-generated catch block
  22. e.printStackTrace();
  23. }finally{
  24. try {
  25. if(con!=null){
  26. con.close();
  27. }
  28. } catch (Exception e2) {
  29. // TODO: handle exception
  30. }
  31. }
  32. return list;
  33. }
  34. }
  35. public static void main (String[] args){
  36. List<Student> students=getStudents();
  37. System.out.println(students);
  38. }

 

 

 

 

JDBC的链接及封装

标签:nbsp   映射   sid   sys   imp   manage   try   const   多少   

人气教程排行