当前位置:   article > 正文

JDBC连接_encrypt=true;trustservercertificate=true

encrypt=true;trustservercertificate=true

最近学习了嵌入式SQL,尝试将SQL嵌入到Java中。首先尝试一下JDBC连接SQL server数据库,使用IDEA实现。

首先创建一个JDBCUtils类,这样以后使用JDBC就不用重复编程,直接复用即可。

  1. package com.ymw.jdbc;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.sql.*;
  5. import java.util.Properties;
  6. public class JDBCUtils {
  7. private static String driver=null;
  8. private static String url=null;
  9. private static String username=null;
  10. private static String password=null;
  11. static {
  12. try {
  13. InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
  14. Properties properties = new Properties();
  15. properties.load(in);
  16. driver = properties.getProperty("driver");
  17. url=properties.getProperty("url");
  18. username=properties.getProperty("username");
  19. password=properties.getProperty("password");
  20. Class.forName(driver);//加载驱动
  21. } catch (IOException | ClassNotFoundException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. public static Connection getConnection() throws SQLException {
  26. return DriverManager.getConnection(url, username, password);
  27. }
  28. public static void release(Connection conn,Statement st,ResultSet rs) throws SQLException {
  29. if (rs!=null){
  30. rs.close();
  31. }
  32. if (st!=null){
  33. st.close();
  34. }
  35. if(conn!=null){
  36. conn.close();
  37. }
  38. }
  39. }

工具类中我们并没有将driver、url、username、password等参数直接写上,而是通过properties来获取,这样做避免了强耦合,实现解耦的功能,将所有的参数写在db.properties文件中,方便管理。

然后是获取连接和释放连接的方法。

然后写测试类,

  1. package com.ymw.jdbc;
  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. public class TestSelect {
  7. public static void main(String[] args){
  8. Connection conn=null;
  9. Statement st=null;
  10. ResultSet rs=null;
  11. try {
  12. conn = JDBCUtils.getConnection();
  13. st=conn.createStatement();
  14. String sql="select * from Yemw_Courses";
  15. rs=st.executeQuery(sql);
  16. while (rs.next()){
  17. System.out.println(rs.getString("ymw_Cname"));
  18. }
  19. } catch (SQLException e) {
  20. e.printStackTrace();
  21. }finally {
  22. try {
  23. JDBCUtils.release(conn,st,rs);
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }
  29. }

首先声明三个对象,数据库连接对象、操作对象以及结果集。

然后去获取连接,然后获取sql的执行对象,再去编写sql操作语句,然后使用executeQuery去执行sql语句,最后依次释放。

然后去运行程序。

但是遇到了一些问题,报错信息如下:

在网上找了很多方法,比如修改security文件,发现最后都无法解决问题。然后在官方文档中找到了方法,在配置连接中加上

encrypt=true;trustServerCertificate=true;

当 encrypt 属性设置为 true 且trustServerCertificate 属性设置为 true 时,适用于 SQL Server 的 Microsoft JDBC 驱动程序不会验证 SQL Server TLS 证书。

再一次尝试执行程序

这样就成功了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/477358
推荐阅读
相关标签
  

闽ICP备14008679号