• java(连接mysql)


    连接数据库的方法:

    1. //方式一
    2. public void connect01() throws Exception{
    3. Driver driver = new Driver();//创建driver对象
    4. String url = "jdbc:mysql://localhost:3306/data";
    5. //将用户和密码放入到Properties对象
    6. Properties properties = new Properties();
    7. properties.setProperty("user","root");//用户
    8. //properties.setProperty("password","123456");//密码
    9. Connection connect = driver.connect(url, properties);//得到连接
    10. }
    11. public void connect02() throws Exception{
    12. Class aClass = Class.forName("com.mysql.jdbc.Driver");//使用反射加载Driver类
    13. Driver driver = (Driver) aClass.newInstance();
    14. }
    15. public void connect03() throws Exception{
    16. //使用Class.forName自动完成注册驱动
    17. Class.forName("com.mysql.jdbc.Driver");
    18. String url = "jdbc:mysql://localhost:3306/data";
    19. String user = "root";
    20. //String password = "123456";
    21. Connection connection = DriverManager.getConnection(url, user, password);
    22. }
    23. public void connect04() throws Exception{
    24. //在3的基础上改进,增加配置文件,让连接mysql更加灵活
    25. Properties properties = new Properties();
    26. properties.load(new FileInputStream("src\\jdbc_\\mysql.properties"));
    27. String user = properties.getProperty("user");
    28. String password = properties.getProperty("password");
    29. String url = properties.getProperty("url");
    30. String driver = properties.getProperty("driver");
    31. Class.forName(driver);
    32. Connection connection = DriverManager.getConnection(url, user, password);
    33. System.out.println(connection);
    34. }

    ResultSet基本介绍:

    1.表示数据库结果集的数据表,通常通过执行查询数据库的语句生成

    2.ResultSet对象保持一个光标指向其当前的数据行。最开始光标位于第一行之前

    3.next方法将光标移动到下一行,并且由于在ResultSet对象中没有更多行时返回false,因此可以在while循环中使用循环来遍历结果集

    1. Statement statement = connection.createStatement();
    2. String sql = "select id,name,sex,borndate from actor";
    3. ResultSet resultSet = statement.executeQuery(sql);//得到结果集
    4. while (resultSet.next()){
    5. int id = resultSet.getInt(1);//获取该行第一列
    6. String name = resultSet.getString(2);//第二列
    7. String sex = resultSet.getString(3);
    8. Date date = resultSet.getDate(4);
    9. System.out.println(id + "\t" + name + "\t" + sex + "\t" + date);
    10. }

    Statement基本介绍:

    1.Statement对象用于执行静态SQL语句并返回其生成的结果的对象

    2.在连接建立后,需要对数据库进行访问,执行命令或是SQL语句,可以通过

            Statement [ 存在SQL注入 ]

            PreparedStatement [ 预处理 ]

            CallableStatement [ 存储过程 ]

    3.Statement对象执行SQL语句,存在SQL注入风险

    4.SQL注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的SQL语句段或命令,恶意攻击数据库

    5.要防范SQL注入,只要用PreparedStatement(从Statement扩展而来)取代Statement就可以

    1. public class preparedStatement {
    2. public static void main(String[] args) throws Exception{
    3. Properties properties = new Properties();
    4. properties.load(new FileInputStream("src\\jdbc_\\mysql.properties"));
    5. String user = properties.getProperty("user");
    6. String password = properties.getProperty("password");
    7. String url = properties.getProperty("url");
    8. String driver = properties.getProperty("driver");
    9. Class.forName(driver);
    10. Connection connection = DriverManager.getConnection(url, user, password);
    11. //String sql = "create table admin( id int,name varchar(32))";
    12. String sql = "insert into admin values(?,?)";
    13. PreparedStatement preparedStatement = connection.prepareStatement(sql);
    14. preparedStatement.setInt(1,1);
    15. preparedStatement.setString(2,"jack");
    16. preparedStatement.executeUpdate();
    17. preparedStatement.close();
    18. connection.close();
    19. }
    20. }

  • 相关阅读:
    latex cite命令、款式
    油罐清洗抽吸系统设计
    Objective-C中weak实现原理
    JavaBean专项练习(学生信息管理系统)(增删改查)(每步详细解释和思路)
    windows编程之GDI绘图 -- 实验3-1
    C++各知识点参考资料汇总(不定期更新)
    一文搞懂用户登录验证流程(附图)
    npm create vue@latest 原理
    什么是响应式对象?响应式对象的创建过程?
    JavaScript系列之Array对象
  • 原文地址:https://blog.csdn.net/weixin_63954483/article/details/126486479