优化Mybatis配置文件中的配置
优化连接数据库的配置
- 使用properties
<configuration>
<!-- 定义属性 -->
<properties>
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/jektong?useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="jektong" />
<property name="password" value="123456" />
</properties>
<!-- 关联数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url"
value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
</configuration>
- 使用外部的
db.properties
文件
db.properties
# mysql
url=jdbc:mysql://localhost:3306/jektong?useUnicode=true&characterEncoding=utf-8
driver=com.mysql.jdbc.Driver
username=jektong
password=123456
配置:
<configuration>
<!--引入外部文件 -->
<properties resource="db.properties"/>
<!-- 关联数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url"
value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
</configuration>
-
为类定义别名
映射文件引用时,需指定实体类的全类名(包名+类名)
<!-- 指定类型别名 --> <typeAliases> <!-- <typeAlias type="com.jektong.entity.Dept" alias="_Dept"/> <typeAlias type="java.lang.Integer" alias="int"/> --> <!-- 指定类型别名包 别名为类名 --> <package name="com.jektong.entity"/> </typeAliases>
返回Map类型的查询结果
根据员工号查询员工信息的同时查询出部门所在的部门信息
<select id="findEmpAndDeptById" resultType="map"
parameterType="int">
select t.*, d.* from t_emp t join dept_xu d on
d.deptno=t.e_deptno where t.e_deptno=#{id}
</select>
Mapper映射接口
Mapper映射接口是开发者创建用于绑定映射语句的接口,映射接口的实例对象可以从SqlSession对象中获取
注意:
映射文件中的namespance
的值必须与对应的Mapper接口的名称一致,映射文件中的id
名必须与接口方法名保持一致
补充:
扫描二维码关注公众号,回复:
11931627 查看本文章
#{} ${}
1.都是取的是变量的值
2.#{}取值,sql语句编译会替换为?,${}直接替换为变量的值,因此#{}更安全,可以防止sql注入,并且是预编译的
3.${}一般用于传入的数据库对象如:表名 字段名