找回密码
 立即注册
首页 业界区 业界 MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口 ...

MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类

椎蕊 昨天 21:25
MyBatis核心配置文件详解

多环境
  1. <environments <properties resource="jdbc.properties" />default="development">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="development">
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  6. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  7. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  8. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  9. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  10. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  11. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="mybatisDB">
  12. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  13. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  14. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  15. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring1"/>
  16. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  17. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  18. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  19. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  20. </environments>
复制代码
那么java程序如何使用指定的环境呢?
  1. public <properties resource="jdbc.properties" />void <properties resource="jdbc.properties" />testEnvironment() <properties resource="jdbc.properties" />throws <properties resource="jdbc.properties" />IOException <properties resource="jdbc.properties" />{
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />SqlSessionFactoryBuilder <properties resource="jdbc.properties" />builder <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />new <properties resource="jdbc.properties" />SqlSessionFactoryBuilder();
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />没指定环境,默认使用mybatis-config.xml中default指定的环境
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />SqlSessionFactory <properties resource="jdbc.properties" />sqlSessionFactory <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />builder.build(Resources.getResourceAsStream("mybatis-config.xml"));
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />指定环境为development,使用mybatis-config.xml中id为development的环境配置
  6. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />SqlSessionFactory <properties resource="jdbc.properties" />sqlSessionFactory2 <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />builder.build(Resources.getResourceAsStream("mybatis-config.xml"), <properties resource="jdbc.properties" />"development");
  7. }
复制代码
dataSource数据源

dataSource的作用:为程序提供connection对象(凡是给程序提供connection对象的,都叫做数据源)。
数据源是一套规范,有JDK规定。
dataSource是一个接口。数据库连接池就是一个数据源。
type属性指定数据源类型。
  1. <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  6. <properties resource="jdbc.properties" /></dataSource>
复制代码
数据库连接池参数
  1. <environments <properties resource="jdbc.properties" />default="development">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="development">
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  6. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  7. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  8. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  9. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  10. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  11. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="mybatisDB">
  12. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  13. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  14. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  15. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring1"/>
  16. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  17. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  18. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  19. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  20. </environments> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  21. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  22. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  23. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  24. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  25. <properties resource="jdbc.properties" /></dataSource> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  26. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  27. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  28. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  29. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  30. <properties resource="jdbc.properties" /></dataSource> <properties resource="jdbc.properties" />
复制代码
properties标签
  1. <environments <properties resource="jdbc.properties" />default="development">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="development">
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  6. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  7. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  8. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  9. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  10. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  11. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><environment <properties resource="jdbc.properties" />id="mybatisDB">
  12. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><transactionManager <properties resource="jdbc.properties" />type="JDBC"/>
  13. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  14. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  15. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring1"/>
  16. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  17. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  18. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></dataSource>
  19. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /></environment>
  20. </environments> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />
复制代码
properties还有另外一种方式:使用resource属性(推荐)
  1. <properties resource="jdbc.properties" />
复制代码
引入jdbc.properties配置文件,其内容如下:
  1. jdbc.dirver=com.mysql.cj.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=UTC
  3. jdbc.username=root
  4. jdbc.password=123456
复制代码
mybatis事务控制

一个SqlSession对象控制一个事务。保证一个线程对应一个SqlSession对象。
所以要把SqlSession对象放在ThreadLocal里面。
mybatis三大对象作用域

SqlSessionFactoryBuilder

这个类用来创建SqlSessionFactory对象,它的作用域是方法作用域。只使用一次。
SqlSessionFactory

SqlSessionFactory一旦被创建,就在应用的运行期间一直存在,在应用运行期间不要重复创建多次。它的作用域是应用作用域。可以使用单例模式实现。
SqlSession

一个线程对应一个SqlSession实例。SqlSession的实例不是线程安全的,因此不能被共享。它的作用域是请求或方法作用域。绝对不能将SqlSession实例放在一个类的静态域,甚至一个类的实例变量也不行。
免写Mapper接口的实现类(使用javassist生成类)

javassist的效率高于cglib
javassist用于在内存中自动生成dao层的类。

  • 先引入依赖
    1. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />org.javassist <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />javassist <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />3.29.1-GA
    复制代码

    • 编写生成代码:
      1. public <properties resource="jdbc.properties" />void <properties resource="jdbc.properties" />javavassistTest() <properties resource="jdbc.properties" />throws <properties resource="jdbc.properties" />Exception <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />1. <properties resource="jdbc.properties" />获取类池,类池用来生成class <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ClassPool <properties resource="jdbc.properties" />pool <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ClassPool.getDefault(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />2.制造类 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass <properties resource="jdbc.properties" />ctClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />pool.makeClass("com.ali.dao.CarDao"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />3.制造方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />String <properties resource="jdbc.properties" />methodStr <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />"public <properties resource="jdbc.properties" />void <properties resource="jdbc.properties" />save() <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" />System.out.println("保存车辆"); <properties resource="jdbc.properties" />}"; <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtMethod <properties resource="jdbc.properties" />ctMethod <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />CtNewMethod.make(methodStr, <properties resource="jdbc.properties" />ctClass); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />4.将方法添加到类中 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.addMethod(ctMethod); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />5.将类写入内存 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.toClass(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />6.类加载 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />Class <properties resource="jdbc.properties" />aClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />Class.forName("com.ali.dao.CarDao"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />7.创建对象 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />Object <properties resource="jdbc.properties" />o <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />aClass.newInstance(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />8.获取方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />Method <properties resource="jdbc.properties" />save <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />aClass.getDeclaredMethod("save"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />9.执行方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />save.invoke(o);}
      复制代码

注意:高版本的jdk(jdk8以上)启动的时候会报错,可以在启动时配置以下参数解决:
--add-opens <properties resource="jdbc.properties" />java.base/java.lang=ALL-UNNAMED
--add-opens <properties resource="jdbc.properties" />java.base/sun.net.util=ALL-UNNAMED

使用javassist动态生成类并实现接口
  1. public <properties resource="jdbc.properties" />void <properties resource="jdbc.properties" />testGenerateClass() <properties resource="jdbc.properties" />throws <properties resource="jdbc.properties" />Exception <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />1. <properties resource="jdbc.properties" />获取类池,类池用来生成class <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ClassPool <properties resource="jdbc.properties" />pool <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ClassPool.getDefault(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />2.制造类 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass <properties resource="jdbc.properties" />ctClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />pool.makeClass("com.ali.dao.CarDaoImpl"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />3.制造接口 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass <properties resource="jdbc.properties" />ctInterface <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />pool.makeInterface("com.ali.dao.CarDao"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />4.将接口添加到类中,实现接口 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.addInterface(ctInterface); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />5.实现接口中的所有方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />5.1 <properties resource="jdbc.properties" />获取接口所有方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtMethod[] <properties resource="jdbc.properties" />methods <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ctInterface.getDeclaredMethods(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />5.2 <properties resource="jdbc.properties" />遍历方法,获取方法的签名,并实现方法 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />for <properties resource="jdbc.properties" />(CtMethod <properties resource="jdbc.properties" />method <properties resource="jdbc.properties" />: <properties resource="jdbc.properties" />methods) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />StringBuilder <properties resource="jdbc.properties" />methodStr <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />new <properties resource="jdbc.properties" />StringBuilder(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("public <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(method.getReturnType().getName()); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(" <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(method.getName()); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("("); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />获取方法参数列表 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass[] <properties resource="jdbc.properties" />parameterTypes <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />method.getParameterTypes(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />for <properties resource="jdbc.properties" />(int <properties resource="jdbc.properties" />i <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />0; <properties resource="jdbc.properties" />i <properties resource="jdbc.properties" />< <properties resource="jdbc.properties" />parameterTypes.length; <properties resource="jdbc.properties" />i++) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(parameterTypes[i].getName()).append(" <properties resource="jdbc.properties" />arg").append(i); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(i <properties resource="jdbc.properties" />< <properties resource="jdbc.properties" />parameterTypes.length <properties resource="jdbc.properties" />- <properties resource="jdbc.properties" />1) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(", <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(") <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" />System.out.println("11111")"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />添加return语句 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(!method.getReturnType().getName().equals("void")) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />String <properties resource="jdbc.properties" />simpleName <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />method.getReturnType().getSimpleName(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />("void".equals(simpleName)) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  6. <properties resource="jdbc.properties" /></dataSource> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />}else <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />("int".equals(simpleName)) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("return <properties resource="jdbc.properties" />0"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" />else <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />("String".equals(simpleName)) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("return <properties resource="jdbc.properties" />"你好!""); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(" <properties resource="jdbc.properties" />}"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtMethod <properties resource="jdbc.properties" />ctMethod <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />CtNewMethod.make(methodStr.toString(), <properties resource="jdbc.properties" />ctClass); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />6.将方法添加到类中 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.addMethod(ctMethod); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />7.在内存中生成类,同时将类加载到jvm中 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />Class <properties resource="jdbc.properties" />aClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ctClass.toClass(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />8.创建对象,并将对象转换为接口类型 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CarDao <properties resource="jdbc.properties" />carDao <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />(CarDao)aClass.newInstance(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />carDao.delete();}
复制代码
工具类GenerateDaoProxy

mybatis中不用写实现类,其原理就是利用类似以下的工具类通过反射机制在内存中自动实现了接口的实现类。
注意:XxxxMapper.xml文件中的namespace必须是dao接口的全限定名称;sql语句的id必须是dao接口的方法名。否则动态生成的类会报错!
  1. // <properties resource="jdbc.properties" />这个类的作用是生成 <properties resource="jdbc.properties" />DAO <properties resource="jdbc.properties" />接口的实现类,使用 <properties resource="jdbc.properties" />Javassist <properties resource="jdbc.properties" />来动态创建代理类public <properties resource="jdbc.properties" />class <properties resource="jdbc.properties" />GenerateDaoProxy <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />生成dao接口的实现类额,返回一个实现了 <properties resource="jdbc.properties" />daoInterface <properties resource="jdbc.properties" />接口的类的实例 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />public <properties resource="jdbc.properties" />static <properties resource="jdbc.properties" />Object <properties resource="jdbc.properties" />generateProxy(SqlSession <properties resource="jdbc.properties" />sqlSession,Class <properties resource="jdbc.properties" />daoInterface) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />创建一个接口的实现类,命名为 <properties resource="jdbc.properties" />daoInterface <properties resource="jdbc.properties" />的名字加上 <properties resource="jdbc.properties" />"Proxy" <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />String <properties resource="jdbc.properties" />proxyClassName <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />daoInterface.getName() <properties resource="jdbc.properties" />+ <properties resource="jdbc.properties" />"Proxy"; <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />try <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ClassPool <properties resource="jdbc.properties" />pool <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ClassPool.getDefault(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass <properties resource="jdbc.properties" />ctClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />pool.makeClass(proxyClassName); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />让这个新类实现 <properties resource="jdbc.properties" />daoInterface <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.addInterface(pool.makeInterface(daoInterface.getName())); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />为每个方法添加一个简单的实现, <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />for <properties resource="jdbc.properties" />(CtMethod <properties resource="jdbc.properties" />method <properties resource="jdbc.properties" />: <properties resource="jdbc.properties" />ctClass.getDeclaredMethods()) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />StringBuilder <properties resource="jdbc.properties" />methodStr <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />new <properties resource="jdbc.properties" />StringBuilder(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("public <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(method.getReturnType().getName()); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(" <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(method.getName()); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("("); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />获取方法参数列表 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtClass[] <properties resource="jdbc.properties" />parameterTypes <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />method.getParameterTypes(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />for <properties resource="jdbc.properties" />(int <properties resource="jdbc.properties" />i <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />0; <properties resource="jdbc.properties" />i <properties resource="jdbc.properties" />< <properties resource="jdbc.properties" />parameterTypes.length; <properties resource="jdbc.properties" />i++) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(parameterTypes[i].getName()).append(" <properties resource="jdbc.properties" />arg").append(i); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(i <properties resource="jdbc.properties" />< <properties resource="jdbc.properties" />parameterTypes.length <properties resource="jdbc.properties" />- <properties resource="jdbc.properties" />1) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /><dataSource <properties resource="jdbc.properties" />type="POOLED">
  2. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="driver" <properties resource="jdbc.properties" />value="com.mysql.cj.jdbc.Driver"/>
  3. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="url" <properties resource="jdbc.properties" />value="jdbc:mysql://localhost:3306/spring6"/>
  4. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="username" <properties resource="jdbc.properties" />value="root"/>
  5. <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /><property <properties resource="jdbc.properties" />name="password" <properties resource="jdbc.properties" />value="root"/>
  6. <properties resource="jdbc.properties" /></dataSource> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(", <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append(") <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" />"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("org.apache.ibatis.session.SqlSession <properties resource="jdbc.properties" />sqlSession <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />com.ali.utils.SqlSessionUtil.openSqlSession();"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />需要知道是什么类型的sql语句 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />mybatis框架规定:sql语句的id不能随便写,namespace必须是接口的全限定名,id必须是接口的方法名 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />所以可以通过反射获取方法的全限定名和方法名来获取sql语句的id <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />String <properties resource="jdbc.properties" />sqlId <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />daoInterface.getName() <properties resource="jdbc.properties" />+ <properties resource="jdbc.properties" />"." <properties resource="jdbc.properties" />+ <properties resource="jdbc.properties" />method.getName(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />SqlCommandType <properties resource="jdbc.properties" />sqlCommandType <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />sqlSession.getConfiguration().getMappedStatement(sqlId).getSqlCommandType(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(sqlCommandType <properties resource="jdbc.properties" />== <properties resource="jdbc.properties" />SqlCommandType.INSERT) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" />else <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(sqlCommandType <properties resource="jdbc.properties" />== <properties resource="jdbc.properties" />SqlCommandType.UPDATE) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />参数名必须是 <properties resource="jdbc.properties" />arg0,因为在上面定义方法的时候,参数名是 <properties resource="jdbc.properties" />arg0,如果参数名不一致,就会报错,找不到参数 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("return <properties resource="jdbc.properties" />sqlSession.update("").append(sqlId).append("", <properties resource="jdbc.properties" />arg0);"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" />else <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(sqlCommandType <properties resource="jdbc.properties" />== <properties resource="jdbc.properties" />SqlCommandType.DELETE) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />}else <properties resource="jdbc.properties" />if <properties resource="jdbc.properties" />(sqlCommandType <properties resource="jdbc.properties" />== <properties resource="jdbc.properties" />SqlCommandType.SELECT) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />String <properties resource="jdbc.properties" />returnName <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />method.getReturnType().getName(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("return <properties resource="jdbc.properties" />("+returnName+")sqlSession.selectOne("").append(sqlId).append("", <properties resource="jdbc.properties" />arg0);"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />methodStr.append("}"); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />CtMethod <properties resource="jdbc.properties" />ctMethod <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />CtMethod.make(methodStr.toString(), <properties resource="jdbc.properties" />ctClass); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />ctClass.addMethod(ctMethod); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />// <properties resource="jdbc.properties" />将生成的类加载到 <properties resource="jdbc.properties" />JVM <properties resource="jdbc.properties" />中,并返回一个实例 <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />Class <properties resource="jdbc.properties" />proxyClass <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />ctClass.toClass(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />return <properties resource="jdbc.properties" />proxyClass.newInstance(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" />catch <properties resource="jdbc.properties" />(Exception <properties resource="jdbc.properties" />e) <properties resource="jdbc.properties" />{ <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />e.printStackTrace(); <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />return <properties resource="jdbc.properties" />null; <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />} <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" /> <properties resource="jdbc.properties" />}
复制代码
实际开发中,在mybatis框架中,可以使用SqlSession对象的getMapper方法获取mybatis框架为我们生成的代理类实例:
  1. // <properties resource="jdbc.properties" />通过getMapper获取 <properties resource="jdbc.properties" />carDao <properties resource="jdbc.properties" />对象private <properties resource="jdbc.properties" />CarDao <properties resource="jdbc.properties" />carDao <properties resource="jdbc.properties" />= <properties resource="jdbc.properties" />SqlSessionUtil.openSqlSession().getMapper(CarDao.class);
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册