0x04jdbc和mybatis
- 其他
- 2025-09-15 20:21:01

JDBC 简介
JDBC:Java DataBase Connectivity,就是使用Java语言操作关系型数据库的一套API
jdbc的使用 public class JdbcTest { @Test public void testUpdate() throws ClassNotFoundException, SQLException { //1. 注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2. 获取数据库连接 String url = "jdbc:mysql://localhost:3306/web01"; String username = "root"; String password = "1234"; Connection connection = DriverManager.getConnection(url, username, password); //3. 获取sql语句执行对象 Statement statement = connection.createStatement(); //4. 执行sql int i = statement.executeUpdate("update user set age = 25 where id = 1"); System.out.println("SQL语句执行完影响的记录数为" + i); //5. 释放资源 statement.close(); connection.close(); } }jdbc执行查询语句
public class JdbcTest { @Test public void testSelect() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.cj.jdbc.Driver"); //2. 获取数据库连接 String url = "jdbc:mysql://localhost:3306/web01"; String username = "root"; String password = "1234"; Connection connection = DriverManager.getConnection(url, username, password); //3. 获取sql语句执行对象 Statement statement = connection.createStatement(); //4. 执行sql ResultSet resultSet = statement.executeQuery("select * from user where username='daqiao'"); //解析查询到的语句 while (resultSet.next()) { User user = new User(resultSet.getInt("id") ,resultSet.getString("username") ,resultSet.getString("password") ,resultSet.getString("name") ,resultSet.getInt("age") ); System.out.println(user); } //5. 释放资源 statement.close(); connection.close(); } }预编译的sql
安全:可以防止SQL注入
性能更高:主要是利用了缓存机制来提高性能
MyBatis 简介MyBatis是一款持久层框架,用于简化JDBC的开发。
简化代码:
MyBatis几乎免除了所有JDBC代码以及设置参数和获取结果集的工作。
mybatis的辅助配置 配置sql提示 配置mybatis的日志输出 # 配置mybatis的日志输出 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 数据库连接池数据库连接池是一个容器,负责分配、管理数据库连接。
在没有数据库连接池的情况下执行一条sql语句的过程:
创建连接 --> 执行sql --> 关闭连接 --> 创建连接 --> 执行sql --> 关闭连接 --> ...
在有数据库连接池的情况下
从数据库连接池拿出一个连接 --> 执行sql --> 归还连接 --> 拿出连接 --> 执行SQL --> 归还连接
删除数据 XML映射配置在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句,配置时有一些规则。
XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下**(同包同名)**XML映射文件的namespace属性为Mapper接口全限定名一致XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致那么问题来了,有注解和XML映射这两种方式,我们到底用哪个?
这个就是一个见仁见智的问题,spring官方建议的是简单sql使用注解,而复杂sql则使用XML映射
XML映射文件辅助配置对于上面xml映射配置的第一条规则,如果不放在同一包下,也想让xml可以找到对应的位置就需要在application.properties中进行如下配置
# 指定XML映射配置文件的位置 mybatis.mapper-locations=classpath:mapper/*.xml # 上面*.xml表示classpath下面的所有xml文件 SpringBoot项目配置文件SpringBoot项目提供了多种属性配置方式**(properties、yaml、yml)**
properties使用key-value方法臃肿、层级结构不清晰
yaml|yml更加简洁、结构清晰
格式:
数值前边必须有空格,作为分隔符使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可**#**表示注释例子
properties文件
spring.application.name=mybatis spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://localhost:3306/web01 spring.datasource.username=root spring.datasource.password=1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl mybatis.mapper-locations=classpath:mapper/*.xmlyaml/yml
spring: application: name: mybatis datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/web01 username: root password: 1234 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/*.xml0x04jdbc和mybatis由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“0x04jdbc和mybatis”