JDBC从入门到熟练(一)

举报
tea_year 发表于 2021/12/29 22:50:20 2021/12/29
【摘要】 //最简单的jdbc连接jdbc,记住5个步骤 import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class Test1 { public static void main(String[] args)...
//最简单的jdbc连接jdbc,记住5个步骤
 

  
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4. public class Test1 {
  5. public static void main(String[] args) {
  6. String url="jdbc:sqlserver://localhost:1433;DatabaseName=News2";
  7. Connection con=null; //链接对象
  8. try {
  9. //1加载驱动类,实例化一下
  10. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  11. con=DriverManager.getConnection(url, "sa", "sa");
  12. //2.获得连接对象
  13. if(con!=null){
  14. System.out.println("数据库链接成功!");
  15. }
  16. } catch (ClassNotFoundException e){
  17. e.printStackTrace();
  18. } catch (SQLException e) {
  19. e.printStackTrace();
  20. }finally{
  21. try {
  22. con.close();//关闭链接
  23. } catch (SQLException e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. }
  28. }

在此基础上继续完善:


  
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. //数据库管理类做好了,可以直接链接+关闭语句对象+关闭链接对象;
  7. public class DBManager {
  8. private static Connection con=null;
  9. private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  10. private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=News";
  11. private static String sql="insert userInfo values('admin','admin',getdate())";
  12. private static String user="sa";
  13. private static String pwd="sa";
  14. //1.公共方法是获得数据库链接对象
  15. public static Connection getConnection(){
  16. try {
  17. Class.forName(driver);//加,连
  18. con=DriverManager.getConnection(url,user,pwd);
  19. } catch (ClassNotFoundException e) {
  20. e.printStackTrace();
  21. } catch (SQLException e) {
  22. e.printStackTrace();
  23. }
  24. return con;//非void都需要return
  25. }
  26. //关闭所有方法;有3个参数!,省代码了!!!
  27. public static void closeAll(ResultSet rs,Statement stmt,Connection con){
  28. try {
  29. if(rs!=null){
  30. rs.close();
  31. }
  32. if(stmt!=null){
  33. stmt.close();
  34. }
  35. if(con!=null){
  36. con.close();
  37. }
  38. } catch (SQLException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. }

  
  1. import java.sql.Date;
  2. //实体类:存储介质
  3. public class UserInfo {
  4. private int id;
  5. private String username;
  6. private String pwd;
  7. private Date createtime;
  8. public UserInfo(int id, String username, String pwd, Date createtime) {
  9. super();
  10. this.id = id;
  11. this.username = username;
  12. this.pwd = pwd;
  13. this.createtime = createtime;
  14. }
  15. public int getId() {
  16. return id;
  17. }
  18. public void setId(int id) {
  19. this.id = id;
  20. }
  21. public String getUsername() {
  22. return username;
  23. }
  24. public void setUsername(String username) {
  25. this.username = username;
  26. }
  27. public String getPwd() {
  28. return pwd;
  29. }
  30. public void setPwd(String pwd) {
  31. this.pwd = pwd;
  32. }
  33. public Date getCreatetime() {
  34. return createtime;
  35. }
  36. public void setCreatetime(Date createtime) {
  37. this.createtime = createtime;
  38. }
  39. }


  
  1. import java.sql.*;
  2. import java.sql.Date;
  3. import java.util.*;
  4. //对UserInfo表的数据库管理类
  5. public class UserInfoDB {
  6. //0.声明对象;
  7. Connection con=null;
  8. Statement stmt=null; //语句对象
  9. PreparedStatement pstmt=null;
  10. int result=0; //受影响的行数
  11. ResultSet rs=null; //结果集对象
  12. //这个方法:对UserInfo表的增 删 改方法
  13. //sql:可以insert update delete
  14. public int updateUserInfo(String sql){
  15. try {
  16. con=DBManager.getConnection();//加连了!!!
  17. stmt=con.createStatement();//语句对象
  18. result=stmt.executeUpdate(sql);
  19. } catch (SQLException e) {
  20. e.printStackTrace();
  21. }finally{
  22. DBManager.closeAll(null, stmt, con);
  23. }
  24. return result;
  25. }
  26. //ArrayList:是个可变类型的动态集合
  27. //针对预编译语句对象的公共方法;list:存放的是?参数的个数
  28. public int updateUserInfo(String sql,List list){
  29. try {
  30. con=DBManager.getConnection();//嘉联
  31. pstmt=con.prepareStatement(sql);//1.得对象
  32. //2.要赋值;
  33. for(int i=0;i<list.size();i++){
  34. pstmt.setObject(i+1,list.get(i));
  35. }
  36. result=pstmt.executeUpdate();//3.去执行
  37. } catch (SQLException e) {
  38. e.printStackTrace();
  39. }finally{
  40. DBManager.closeAll(null, pstmt, con);
  41. }
  42. return result;
  43. }
  44. //简单的查询
  45. public List<UserInfo> getUser(String sql){
  46. List<UserInfo>list=new ArrayList<UserInfo>();
  47. try {
  48. con=DBManager.getConnection();
  49. pstmt=con.prepareStatement(sql);
  50. rs=pstmt.executeQuery();
  51. while(rs.next()){
  52. int id=rs.getInt(1);
  53. String name=rs.getString(2);
  54. String pwd=rs.getString("pwd");
  55. Date date=rs.getDate(4);
  56. UserInfo user=new UserInfo(id,name,pwd,date);
  57. list.add(user);
  58. }
  59. } catch (SQLException e) {
  60. e.printStackTrace();
  61. }finally{
  62. DBManager.closeAll(rs, pstmt, con);
  63. }
  64. return list;
  65. }
  66. }


  
  1. import java.sql.*;
  2. import java.util.*;
  3. public class TestPre {
  4. public static void main(String[] args) {
  5. //测试;
  6. UserInfoDB udb=new UserInfoDB();
  7. String sql="select * from userInfo";
  8. List<UserInfo>list=udb.getUser(sql);
  9. System.out.println("编号\t用户\t密码\t日期");
  10. for(UserInfo user:list){
  11. System.out.println(user.getId()+"\t"+user.getUsername()+
  12. "\t"+user.getPwd()+"\t"+user.getCreatetime());
  13. }
  14. }
  15. }
线课堂:https://edu.csdn.net/lecturer/1516 


文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/52875790

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。