jbdc mysql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.****.net/qq_41303423/article/details/79582085

1)JBDC简介:

    JBDC 是java数据库链接技术的简称,提供链接各种常用数据库的能力

JBDC的工作原理:

jbdc mysql

JBDC API:

    提供者:Sun公司

    内容:供程序员调用的接口与类,集成在 Java.sql 和 javax.sql 包中,

    如:

    DriverManager 类:

    Connection接口:

    Statement接口:

    ResultSet接口:

DriverManager:

    提供者:Sun公司

    作用:管理各种不同的JBDC驱动

JBDC驱动:

    提供者:数据库厂商

    作用:负责链接各种不同的数据库

JBDC API主要功能:

    与数据库建立连接、执行SQL语句、处理结果

jbdc mysql

    DriverManager: 依据数据库的不同,管理JDBC驱动

    Connection:负责链接数据库并担任传送数据的任务

    Statement: 由Connection 产生、负责执行SQL语句

    ResultSet :负责保存Statement 执行后所产生的查询结果

2)连接数据库库

JBDC驱动由数据库厂商提供:

在个人开发测试中,可以使用JBDC-ODBC桥连方式

 在生产型开发中,推荐使用纯java 驱动方式

jbdc mysql

使用JBDC - OBDC 桥方式连接数据库

    将对JBDC API 的调用,转换为对另一组数据库连接API的调用

    优点:可以访问所有ODBC可以访问的数据库

    缺点:执行效率低、功能不够强大

jbdc mysql

 

 

=====================================================================

JDBC驱动:

    使用纯java方式连接数据库

    由JDBC驱动直接访问数据库

    优点:100% java,快又可跨平台

    缺点:访问不同的数据库需要下载专用的JDBC驱动

    jbdc mysql

    在使用纯java方式连接数据库之前需要先引用相关架包

    下载地址:https://download.****.net/download/qq_41303423/10291176

    jbdc mysql

    引用完后就可以使用了。以下代码演示,如若拷贝代码,请注释记录日志代码,以免有错误

    使用纯java方式连接数据库的步骤:

    1.加载驱动     2.建立连接    3.异常处理    4.关闭连接

 
  1. package jdbc;

  2. import java.sql.Connection;

  3. import java.sql.DriverManager;

  4. import java.sql.SQLException;

  5. import org.slf4j.Logger;

  6. import org.slf4j.LoggerFactory;

  7. /**

  8. * 纯java方式连接关闭数据库

  9. *<p>Title:Text01</p>

  10. *<p>Description:</p>

  11. *<p>Company:</p>

  12. * @author MLQ

  13. * @date 2018年3月16日 下午5:21:42

  14. */

  15. public class Text01 {

  16. //记录日志

  17. private static Logger log=LoggerFactory.getLogger(Text01.class);

  18. public static void main(String[] args) {

  19. Connection con=null;

  20. //1.加载驱动

  21. try {

  22. Class.forName("com.mysql.jdbc.Driver");

  23. } catch (ClassNotFoundException e) {

  24. e.printStackTrace();

  25. log.error(e.toString());

  26. }

  27. //2.建立连接

  28. try {

  29. /**

  30. * localhost:3306 本地

  31. * Library:要操作的数据库

  32. * text:用户名

  33. * 123:密码

  34. */

  35. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  36. System.out.println("建立连接成功");

  37. } catch (SQLException e) {

  38. e.printStackTrace();

  39. log.error(e.toString());

  40. }

  41. finally

  42. {

  43. try {

  44. if(con!=null){

  45. con.close();

  46. System.out.println("关闭连接成功");

  47. }

  48. } catch (SQLException e) {

  49. e.printStackTrace();

  50. log.error(e.toString());

  51. }

  52. }

  53. }

  54. }

3)使用 Statement 和 ResultSet

Statement常用方法:

jbdc mysql

 

ResultSet常用方法:

jbdc mysql

代码演示向数据库添加信息:

 
  1. package jdbc;

  2. import java.sql.Connection;

  3. import java.sql.DriverManager;

  4. import java.sql.SQLException;

  5. import java.sql.Statement;

  6. import org.slf4j.Logger;

  7. import org.slf4j.LoggerFactory;

  8. public class Text02 {

  9. private static Logger log=LoggerFactory.getLogger(Text02.class);

  10. public static void main(String[] args) {

  11. //连接数据库

  12. Connection con=null;

  13. //向数据库发送信息

  14. Statement stmt=null;

  15. //1.加载驱动

  16. try {

  17. Class.forName("com.mysql.jdbc.Driver");

  18. } catch (ClassNotFoundException e) {

  19. e.printStackTrace();

  20. log.error(e.toString());

  21. }

  22. //2.建立连接

  23. try {

  24. /**

  25. * localhost:3306 本地

  26. * Library:要操作的数据库

  27. * text:用户名

  28. * 123:密码

  29. */

  30. StringBuffer sql=new StringBuffer();

  31. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  32. //发送给数据库命令,并执行sql语句

  33. stmt=con.createStatement();

  34. //拼接sql语句

  35. //INSERT INTO `reader` VALUES('006','测试',4,'吴名区');

  36. sql.append("INSERT INTO `reader` VALUES(");

  37. sql.append("'007',");

  38. sql.append("'测试1',");

  39. sql.append("4,");

  40. sql.append("'吴名区1');");

  41. //执行sql

  42. //boolean flog=stmt.execute(sql.toString());

  43. int num=stmt.executeUpdate(sql.toString());

  44. if(num>0)

  45. {

  46. System.out.println("插入成功");

  47. }else

  48. {

  49. System.err.println("插入失败!!!");

  50. }

  51. // if(flog)

  52. // {

  53. // System.out.println("插入成功");

  54. // }else

  55. // {

  56. // System.err.println("插入失败!!!");

  57. // }

  58.  
  59. } catch (SQLException e) {

  60. e.printStackTrace();

  61. log.error(e.toString());

  62. }

  63. finally

  64. {

  65. try {

  66. if(stmt!=null)

  67. {

  68. stmt.close();

  69. }

  70. if(con!=null){

  71. con.close();

  72. }

  73. } catch (SQLException e) {

  74. e.printStackTrace();

  75. log.error(e.toString());

  76. }

  77. }

  78. }

  79. }

//对数据库进行修改

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. Statement stmt=null;

  6. //1.加载驱动

  7. try {

  8. Class.forName("com.mysql.jdbc.Driver");

  9. } catch (ClassNotFoundException e) {

  10. e.printStackTrace();

  11. log.error(e.toString());

  12. }

  13. //2.建立连接

  14. try {

  15. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  16. //发送给数据库命令,并执行sql语句

  17. stmt=con.createStatement();

  18. int num = stmt.executeUpdate("UPDATE `reader` SET `rName`='测试数据' WHERE `Rid`='007';");

  19. if(num>0)

  20. {

  21. System.out.println("修改成功");

  22. }else

  23. {

  24. System.err.println("修改失败!!!");

  25. }

  26. } catch (SQLException e) {

  27. e.printStackTrace();

  28. log.error(e.toString());

  29. }

  30. finally

  31. {

  32. try {

  33. if(stmt!=null)

  34. {

  35. stmt.close();

  36. }

  37. if(con!=null){

  38. con.close();

  39. }

  40. } catch (SQLException e) {

  41. e.printStackTrace();

  42. log.error(e.toString());

  43. }

  44. }

//查询数据库中一张表的信息

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. Statement stmt=null;

  6. //定义一个容器

  7. ResultSet set=null;

  8. //1.加载驱动

  9. try {

  10. Class.forName("com.mysql.jdbc.Driver");

  11. } catch (ClassNotFoundException e) {

  12. e.printStackTrace();

  13. log.error(e.toString());

  14. }

  15. //2.建立连接

  16. try {

  17. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  18. //发送给数据库命令,并执行sql语句

  19. stmt=con.createStatement();

  20. set=stmt.executeQuery("select * from reader");//把查询到的信息保存到一个容器里面

  21. //循环读取

  22. System.out.println("编号\t姓名\t测试\t地址");

  23. while(set.next())

  24. {//循环所有行

  25. System.out.print(set.getInt(1)+"\t");//输出每一列

  26. System.out.print(set.getString(2)+"\t");

  27. System.out.print(set.getInt(3)+"\t");

  28. System.out.println(set.getString(4));

  29. }

  30. } catch (SQLException e) {

  31. e.printStackTrace();

  32. log.error(e.toString());

  33. }

  34. finally

  35. {

  36. try {

  37. if(stmt!=null)

  38. {

  39. stmt.close();

  40. }

  41. if(con!=null){

  42. con.close();

  43. }

  44. } catch (SQLException e) {

  45. e.printStackTrace();

  46. log.error(e.toString());

  47. }

  48. }

4)PreparedStatement接口: 

使用PreparedStatement接口

    继承自Statement接口

    比Statement对象使用起来更加灵活,更有效率

    jbdc mysql

jbdc mysql

代码演示:

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. PreparedStatement stmt=null;

  6. //1.加载驱动

  7. try {

  8. Class.forName("com.mysql.jdbc.Driver");

  9. } catch (ClassNotFoundException e) {

  10. e.printStackTrace();

  11. log.error(e.toString());

  12. }

  13. //2.建立连接

  14. try {

  15. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  16. //发送给数据库命令,并执行sql语句

  17. stmt=con.prepareStatement("UPDATE `reader` SET `rName`=? WHERE `Rid`=?;");

  18. stmt.setString(1, "判断");

  19. stmt.setInt(2, 007);

  20. int num=stmt.executeUpdate();

  21. if(num>0)

  22. {

  23. System.out.println("修改成功");

  24. }else

  25. {

  26. System.err.println("修改失败!!!");

  27. }

  28. } catch (SQLException e) {

  29. e.printStackTrace();

  30. log.error(e.toString());

  31. }

  32. finally

  33. {

  34. try {

  35. if(stmt!=null)

  36. {

  37. stmt.close();

  38. }

  39. if(con!=null){

  40. con.close();

  41. }

  42. } catch (SQLException e) {

  43. e.printStackTrace();

  44. log.error(e.toString());

  45. }

  46. }

  47. }

  48.  
  49. }

5)PreparedStatement  与  Statement  执行SQL时的差异区别

数据库User表  UserId为:2018   密码UserPwd:123

测试结果如下:

调用:statementText() 方法时可以登录成功

调用:preparedStatementText() 方法时登陆失败

具体详情请参考以下代码:

----------------------内容重置-------------------------

PreparedStatement接口继承自Statement接口

提高了代码的可读性和维护性

提高了SQL语句执行性能和安全性

 

<--------仅供参考------->

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.****.net/qq_41303423/article/details/79582085

1)JBDC简介:

    JBDC 是java数据库链接技术的简称,提供链接各种常用数据库的能力

JBDC的工作原理:

jbdc mysql

JBDC API:

    提供者:Sun公司

    内容:供程序员调用的接口与类,集成在 Java.sql 和 javax.sql 包中,

    如:

    DriverManager 类:

    Connection接口:

    Statement接口:

    ResultSet接口:

DriverManager:

    提供者:Sun公司

    作用:管理各种不同的JBDC驱动

JBDC驱动:

    提供者:数据库厂商

    作用:负责链接各种不同的数据库

JBDC API主要功能:

    与数据库建立连接、执行SQL语句、处理结果

jbdc mysql

    DriverManager: 依据数据库的不同,管理JDBC驱动

    Connection:负责链接数据库并担任传送数据的任务

    Statement: 由Connection 产生、负责执行SQL语句

    ResultSet :负责保存Statement 执行后所产生的查询结果

2)连接数据库库

JBDC驱动由数据库厂商提供:

在个人开发测试中,可以使用JBDC-ODBC桥连方式

 在生产型开发中,推荐使用纯java 驱动方式

jbdc mysql

使用JBDC - OBDC 桥方式连接数据库

    将对JBDC API 的调用,转换为对另一组数据库连接API的调用

    优点:可以访问所有ODBC可以访问的数据库

    缺点:执行效率低、功能不够强大

jbdc mysql

 

 

=====================================================================

JDBC驱动:

    使用纯java方式连接数据库

    由JDBC驱动直接访问数据库

    优点:100% java,快又可跨平台

    缺点:访问不同的数据库需要下载专用的JDBC驱动

    jbdc mysql

    在使用纯java方式连接数据库之前需要先引用相关架包

    下载地址:https://download.****.net/download/qq_41303423/10291176

    jbdc mysql

    引用完后就可以使用了。以下代码演示,如若拷贝代码,请注释记录日志代码,以免有错误

    使用纯java方式连接数据库的步骤:

    1.加载驱动     2.建立连接    3.异常处理    4.关闭连接

 
  1. package jdbc;

  2. import java.sql.Connection;

  3. import java.sql.DriverManager;

  4. import java.sql.SQLException;

  5. import org.slf4j.Logger;

  6. import org.slf4j.LoggerFactory;

  7. /**

  8. * 纯java方式连接关闭数据库

  9. *<p>Title:Text01</p>

  10. *<p>Description:</p>

  11. *<p>Company:</p>

  12. * @author MLQ

  13. * @date 2018年3月16日 下午5:21:42

  14. */

  15. public class Text01 {

  16. //记录日志

  17. private static Logger log=LoggerFactory.getLogger(Text01.class);

  18. public static void main(String[] args) {

  19. Connection con=null;

  20. //1.加载驱动

  21. try {

  22. Class.forName("com.mysql.jdbc.Driver");

  23. } catch (ClassNotFoundException e) {

  24. e.printStackTrace();

  25. log.error(e.toString());

  26. }

  27. //2.建立连接

  28. try {

  29. /**

  30. * localhost:3306 本地

  31. * Library:要操作的数据库

  32. * text:用户名

  33. * 123:密码

  34. */

  35. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  36. System.out.println("建立连接成功");

  37. } catch (SQLException e) {

  38. e.printStackTrace();

  39. log.error(e.toString());

  40. }

  41. finally

  42. {

  43. try {

  44. if(con!=null){

  45. con.close();

  46. System.out.println("关闭连接成功");

  47. }

  48. } catch (SQLException e) {

  49. e.printStackTrace();

  50. log.error(e.toString());

  51. }

  52. }

  53. }

  54. }

3)使用 Statement 和 ResultSet

Statement常用方法:

jbdc mysql

 

ResultSet常用方法:

jbdc mysql

代码演示向数据库添加信息:

 
  1. package jdbc;

  2. import java.sql.Connection;

  3. import java.sql.DriverManager;

  4. import java.sql.SQLException;

  5. import java.sql.Statement;

  6. import org.slf4j.Logger;

  7. import org.slf4j.LoggerFactory;

  8. public class Text02 {

  9. private static Logger log=LoggerFactory.getLogger(Text02.class);

  10. public static void main(String[] args) {

  11. //连接数据库

  12. Connection con=null;

  13. //向数据库发送信息

  14. Statement stmt=null;

  15. //1.加载驱动

  16. try {

  17. Class.forName("com.mysql.jdbc.Driver");

  18. } catch (ClassNotFoundException e) {

  19. e.printStackTrace();

  20. log.error(e.toString());

  21. }

  22. //2.建立连接

  23. try {

  24. /**

  25. * localhost:3306 本地

  26. * Library:要操作的数据库

  27. * text:用户名

  28. * 123:密码

  29. */

  30. StringBuffer sql=new StringBuffer();

  31. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  32. //发送给数据库命令,并执行sql语句

  33. stmt=con.createStatement();

  34. //拼接sql语句

  35. //INSERT INTO `reader` VALUES('006','测试',4,'吴名区');

  36. sql.append("INSERT INTO `reader` VALUES(");

  37. sql.append("'007',");

  38. sql.append("'测试1',");

  39. sql.append("4,");

  40. sql.append("'吴名区1');");

  41. //执行sql

  42. //boolean flog=stmt.execute(sql.toString());

  43. int num=stmt.executeUpdate(sql.toString());

  44. if(num>0)

  45. {

  46. System.out.println("插入成功");

  47. }else

  48. {

  49. System.err.println("插入失败!!!");

  50. }

  51. // if(flog)

  52. // {

  53. // System.out.println("插入成功");

  54. // }else

  55. // {

  56. // System.err.println("插入失败!!!");

  57. // }

  58.  
  59. } catch (SQLException e) {

  60. e.printStackTrace();

  61. log.error(e.toString());

  62. }

  63. finally

  64. {

  65. try {

  66. if(stmt!=null)

  67. {

  68. stmt.close();

  69. }

  70. if(con!=null){

  71. con.close();

  72. }

  73. } catch (SQLException e) {

  74. e.printStackTrace();

  75. log.error(e.toString());

  76. }

  77. }

  78. }

  79. }

//对数据库进行修改

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. Statement stmt=null;

  6. //1.加载驱动

  7. try {

  8. Class.forName("com.mysql.jdbc.Driver");

  9. } catch (ClassNotFoundException e) {

  10. e.printStackTrace();

  11. log.error(e.toString());

  12. }

  13. //2.建立连接

  14. try {

  15. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  16. //发送给数据库命令,并执行sql语句

  17. stmt=con.createStatement();

  18. int num = stmt.executeUpdate("UPDATE `reader` SET `rName`='测试数据' WHERE `Rid`='007';");

  19. if(num>0)

  20. {

  21. System.out.println("修改成功");

  22. }else

  23. {

  24. System.err.println("修改失败!!!");

  25. }

  26. } catch (SQLException e) {

  27. e.printStackTrace();

  28. log.error(e.toString());

  29. }

  30. finally

  31. {

  32. try {

  33. if(stmt!=null)

  34. {

  35. stmt.close();

  36. }

  37. if(con!=null){

  38. con.close();

  39. }

  40. } catch (SQLException e) {

  41. e.printStackTrace();

  42. log.error(e.toString());

  43. }

  44. }

//查询数据库中一张表的信息

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. Statement stmt=null;

  6. //定义一个容器

  7. ResultSet set=null;

  8. //1.加载驱动

  9. try {

  10. Class.forName("com.mysql.jdbc.Driver");

  11. } catch (ClassNotFoundException e) {

  12. e.printStackTrace();

  13. log.error(e.toString());

  14. }

  15. //2.建立连接

  16. try {

  17. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  18. //发送给数据库命令,并执行sql语句

  19. stmt=con.createStatement();

  20. set=stmt.executeQuery("select * from reader");//把查询到的信息保存到一个容器里面

  21. //循环读取

  22. System.out.println("编号\t姓名\t测试\t地址");

  23. while(set.next())

  24. {//循环所有行

  25. System.out.print(set.getInt(1)+"\t");//输出每一列

  26. System.out.print(set.getString(2)+"\t");

  27. System.out.print(set.getInt(3)+"\t");

  28. System.out.println(set.getString(4));

  29. }

  30. } catch (SQLException e) {

  31. e.printStackTrace();

  32. log.error(e.toString());

  33. }

  34. finally

  35. {

  36. try {

  37. if(stmt!=null)

  38. {

  39. stmt.close();

  40. }

  41. if(con!=null){

  42. con.close();

  43. }

  44. } catch (SQLException e) {

  45. e.printStackTrace();

  46. log.error(e.toString());

  47. }

  48. }

4)PreparedStatement接口: 

使用PreparedStatement接口

    继承自Statement接口

    比Statement对象使用起来更加灵活,更有效率

    jbdc mysql

jbdc mysql

代码演示:

 
  1. public static void main(String[] args) {

  2. //连接数据库

  3. Connection con=null;

  4. //向数据库发送信息

  5. PreparedStatement stmt=null;

  6. //1.加载驱动

  7. try {

  8. Class.forName("com.mysql.jdbc.Driver");

  9. } catch (ClassNotFoundException e) {

  10. e.printStackTrace();

  11. log.error(e.toString());

  12. }

  13. //2.建立连接

  14. try {

  15. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Library","text","123");

  16. //发送给数据库命令,并执行sql语句

  17. stmt=con.prepareStatement("UPDATE `reader` SET `rName`=? WHERE `Rid`=?;");

  18. stmt.setString(1, "判断");

  19. stmt.setInt(2, 007);

  20. int num=stmt.executeUpdate();

  21. if(num>0)

  22. {

  23. System.out.println("修改成功");

  24. }else

  25. {

  26. System.err.println("修改失败!!!");

  27. }

  28. } catch (SQLException e) {

  29. e.printStackTrace();

  30. log.error(e.toString());

  31. }

  32. finally

  33. {

  34. try {

  35. if(stmt!=null)

  36. {

  37. stmt.close();

  38. }

  39. if(con!=null){

  40. con.close();

  41. }

  42. } catch (SQLException e) {

  43. e.printStackTrace();

  44. log.error(e.toString());

  45. }

  46. }

  47. }

  48.  
  49. }

5)PreparedStatement  与  Statement  执行SQL时的差异区别

数据库User表  UserId为:2018   密码UserPwd:123

测试结果如下:

调用:statementText() 方法时可以登录成功

调用:preparedStatementText() 方法时登陆失败

具体详情请参考以下代码:

----------------------内容重置-------------------------

PreparedStatement接口继承自Statement接口

提高了代码的可读性和维护性

提高了SQL语句执行性能和安全性

 

<--------仅供参考------->