mybatis注解模式,mybatis日志文件,把数据源信息提取到属性文件中,为实体类起别名, mybatis处理多个参数,xml特殊字符,获取主键递增的值,模糊查询,列名和属性名不一致的问题

mybatis

1.注解模式

在dao接口方法上面直接用注解

@Select(value = "select * from t_student where id=#{id}")
public Student selectById(int id);

在mybatis.xml里面配置类的映射文件

<mappers>
    <mapper class="com.ghx.dao.StudentDao"/>
</mappers>

当既有注解模式,又有xml模式时,建议只写xml模式      若都写,类的映射要在xml上面

2.mybatis日志文件

引入jar,如

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

把log4j.properties文件放在resources文件夹下

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

3.把数据源信息提取到属性文件中

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/day11
jdbc.username=root
jdbc.password=123456

 在mybatis.xml里面引入db.properties

 

4. 为实体类起别名

5. mybatis处理多个参数

当方法里需要多个参数时需要使用注解@Param

否则会出现类似下面的错误

 

6. xml特殊字符

使用<![CDATA[sql]>

<select id="selectById2" resultType="com.ghx.entity.Student">
    <![CDATA[select * from t_student where id>#{min} and id<#{max}]]>
</select>

 7. 获取主键递增的值

useGeneratedKeys="true" keyProperty="id"

<insert id="insert" useGeneratedKeys="true" keyProperty="id">
    insert into t_student values (null,#{name},#{age},#{classid})
</insert>

 使用,插入完成再输出时可以获取id

不使用,插入完成再输出时不可以获取id

 

8. 模糊查询

使用concat()

<select id="selectLike" resultType="com.ghx.entity.Student">
    select * from t_student where name like concat('%',#{name},'%')
</select>

9. 列名和属性名不一致的问题

  1.起别名    别名与实体类的属性名相同

<select id="select" resultType="com.ghx.entity.UserInfo">
    select id,name userName,password pwd,sex from t_userinfo
</select>

 2.

<resultMap id="TMap" type="com.ghx.entity.Teacher">type里面映射实体类

id一行必须写,result  可以只写不同的

column  里面对应数据库里面的字段,property对应实体类里面的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值