1.连接数据库的配置单独放在一个properties文件中
①创建一个属性文件db.properties
driverName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai
username=root
password=123456
②在配置文件中引入相关的属性文件
2.为实体类定义别名,简化sql映射xml文件中的引用
<typeAliases> //typeAlias:为某个实体类起别名 type:数据类型 alias:别名
<typeAlias type="com.zd.entity.Emp" alias="e"/>
//package:为整个包下的实体类起别名 name:表示实体类包所在的路径 默认别名就是类名
<package name="com.zd.entity"/>
</typeAliases>
3.引入日志文件
步骤:①引入日志jar-----log4j
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
②引入日志文件---log4j.properties或者log4j.xml
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
③测试结果
?4.解决字段名与实体类属性名不相同的冲突
①创建表和数据
CREATE TABLE orders(
order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT
);
INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23);
INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33);
INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);
?②定义实体类
public class Order {
private int id;
private String orderNo;
private float price;
}
③实现根据id查询
方式一:通过在sql语句中定义别名
<select id="selectOrder" parameterType="int" resultType="_Order">
select order_id id,order_no orderNo,order_price orderPrice from orders where order_id=#{id}
</select>
方式二:通过<resultMap>
<select id="selectOrderResultMap" id="orderResultMap">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="orderPrice" column="order_price"/>
</select>
|