数据库配置以及属性名冲突问题

一、连接数据库的配置单独放在一个properties文件中

  之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:

  其实我们完全可以将数据库的连接配置信息写在一个properties文件中,然后在conf.xml文件中引用properties文件,具体做法如下:

  1、在src目录下新建一个db.properties文件,,如下图所示:

  

  在db.properties文件编写连接数据库需要使用到的数据库驱动,连接URL地址,用户名,密码,如下:

1 driver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/mybatis3 name=root4 password=XDP

  2、在MyBatis的conf.xml文件中引用db.properties文件,如下:

development : 开发模式 9 work : 工作模式

二、为实体类定义别名,简化sql映射xml文件中的引用

  之前,我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名),如下:

">insert into users(name,age) values(#{name},#{age})

  parameterType="me.gacl.domain.User"这里写的实体类User的全类名me.gacl.domain.User,每次都写这么一长串内容挺麻烦的,而我们希望能够简写成下面的形式

">insert into users(name,age) values(#{name},#{age})

  parameterType="_User"这样写就简单多了,为了达到这种效果,我们需要在conf.xml文件中为实体类="me.gacl.domain.User"定义一个别名为"_User",具体做法如下:  在conf.xml文件中<configuration></configuration>标签中添加如下配置:

  这样就可以为me.gacl.domain.User类定义了一个别名为_User,以后_User就代表了me.gacl.domain.User类,这样sql映射xml文件中的凡是需要引用me.gacl.domain.User类的地方都可以使用_User来代替,这就达到了一个简化实体类引用的目的。

  除了可以使用<typeAliastype="me.gacl.domain.User" alias="_User"/>这种方式单独为某一个实体类设置别名之外,我们还可以使用如下的方式批量为某个包下的所有实体类设置别名,如下:

为me.gacl.domain包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名比如me.gacl.domain.User这个实体类的别名就会被设置成User

  <package name="me.gacl.domain"/>就表示为这个包下面的所有实体类设置别名。MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名,比如me.gacl.domain.User这个实体类的别名就会被设置成User。

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。

一、准备演示需要使用的表和数据

CREATE TABLE orders(order_id AUTO_INCREMENT,order_no VARCHAR(20),order_price FLOAT);, 23);, 33);, 22);

二、定义实体类

1 package me.gacl.domain; gacl 5 * 定义orders表对应的实体类Order {* 10 CREATE TABLE orders(11 order_id INT PRIMARY KEY AUTO_INCREMENT,12 order_no VARCHAR(20), 13 order_price FLOAT14 );id;String orderNo;price;getId() {23return id;24}setId(int id) {27this.id = id;28}String getOrderNo() {31return orderNo;32}setOrderNo(String orderNo) {35this.orderNo = orderNo;36}getPrice() {39return price;40}setPrice(float price) {43this.price = price;44}45 46@Override47public String toString() {48return "Order [id=" + id + ", orderNo=" + orderNo + ", price=" + price+ "]";49}50 }

三、编写测试代码3.1、编写SQL的xml映射文件

  1、创建一个orderMapper.xml文件,orderMapper.xml的内容如下:

辽远或偏僻的地方,而会常常想起这一次的旅行,

数据库配置以及属性名冲突问题

相关文章:

你感兴趣的文章:

标签云: