海南省建设工程质量安全检测协会网站,做网站的主流技术,wordpress连接数据库不成功,河南网站推广优化公司Mybatis必知必会
一、Mybatis动态加载数据源 在配置数据源连接时,在企业的真实开发中数据源一般都会写在配置文件中#xff0c;而不会直接写在mybatis的核心配置文件中 所以,Mybatis为了方便开发人员去动态的获取数据源连接制定了一些特定的标签用于加载这些数据源。 具体做法…Mybatis必知必会
一、Mybatis动态加载数据源 在配置数据源连接时,在企业的真实开发中数据源一般都会写在配置文件中而不会直接写在mybatis的核心配置文件中 所以,Mybatis为了方便开发人员去动态的获取数据源连接制定了一些特定的标签用于加载这些数据源。 具体做法如下: !--用于加载配置文件--properties resourcejdbc.properties/properties全部的配置文件如下:
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttps://mybatis.org/dtd/mybatis-3-config.dtd
configuration!--用于加载配置文件--properties resourcejdbc.properties/propertiesenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLED!-- 这的键要和 配置文件中的键保持一致--property namedriver value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environments
/configurationjdbc的配置文件
jdbc.drivercom.mysql.cj.jdbc.Driver
jdbc.url jdbc:mysql://localhost:3306/数据库名?serverTimezoneUTCrewriteBatchedStatementstruecharacterEncodingutf-8
jdbc.username用户名
jdbc.password密码二、Mybatis参数传递 在jdbc时参数传递可以通过? 来生成动态的SQL语句然后进行SQL的动态赋值。但在Mybatis中 我们需要学习特定的标签进行参数的传递以及属性的赋值。
第一种方式:
#{参数名} 参数的取值 告诉 MyBatis 创建一个预处理语句PreparedStatement参数在 JDBC 中这样的一个参数在 SQL 中会由一个“?”来标识并被传递到一个新的预处理语句中
第二种方式:
${参数名} 字符串替换 有时你就是想直接在 SQL 语句中直接插入一个不转义的字符串,就可以使用 ${} 来进行字符串的替换
单值传递:
原则: 在传递参数时mybatis取值时和参数列表中的名字无关和下标的索引有关 原因: java中jvm不维护形参变量 举例: 一下代码可以取到值。
ListUser getUserList(String name);select idgetUserList reslutTypeuserSELECT * FROM user WHERE name #{abc}
/select多值传递:
原则 如果在传递多个参数的时候由于jvm不维护形参变量,Mybatis会按照索引下表来取值 有两种方式来进行取值
第一种 arg0,arg1,…第二种 param1,param2,… 举例: Map getUserByNA(String name,String age);select idgetUserByNA resultTypemapSELECT * FROM user WHERE name#{param1} AND age#{param2}
/select通过Param注解进行参数传递 作用类似于map
import org.apache.ibatis.annotations.Param;
Map getUserByNA(Param(name) String name,Param(age) String age);select idgetUserByNA resultTypemapSELECT * FROM user WHERE name#{name} AND age#{age}
/select三、 Mybatis中的包扫描 在配置映射文件时当有多个xml映射文件时开发人员需要配置多个resource所以Mybatis官方为了减少这种频繁的配置资源 就引入了 package 标签用于配置多个 xml资源。
mappers!--开启包扫描之后 在映射文件中无须写全类名配置该标签时 一定要注意 建立的文件夹要和接口的文件夹保持一致--package namecom.atguigu.mapper/
/mappersMybatis中的主键自增回显功能
通常在进行sql语句的增加和删除时开发者通常需要考虑增加的数据的主键时多少此时就需要开启主键回显功能
!--
useGeneratedKeys 开启主键回显
keyProperty 映射的属性 一般为 id--
insert idaddUser useGeneratedKeystrue keyPropertyidinsert into user values(null,#{name},#{age},#{sex})
/insert