首页 > 其他 > 详细

mybatis使用步骤

时间:2019-06-11 12:12:26      阅读:95      评论:0      收藏:0      [点我收藏+]
先导jar包??
mybatis-3.4.6.jar
mysql-connector-java-5.1.39.jar
创建映射文件 "mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
<configuration>
<properties resource="db.properties"/>
<environments default="development">
 
<!-- 代表连接数据库的环境信息 -->
<environment id="development">
 
<!-- 配置事务管理器 type="jdbc" 事务 要么一起成功,要么一起失败 -->
<transactionManager type="jdbc"/>
 
<!-- 配置数据源信息 type="jdbc / pooled / unpooled" jdbc 连接方式 pooled 连接池技术-->
<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>
<mappers>
<!-- 引入映射文件的路径信息 -->
<mapper class="com.mypack.dao.UserDao"/>
 
</mappers>
 
 
</configuration>

 


 
 
 
 
 
注释:这个xml文件必须遵循标签的先后顺序(properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,
objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?,
mappers?)
 
创建属性文件 db.properties??
引入时用:<properties resource="db.properties"/>
根据数据库里的表创建实体类,字段要一一对应,也要写gatset方法
创建dao层接口,里面实行具体的sql语句
@Select("select * from users")
public List<Users> queryAllUsers();
第二种配置映射文件的方法
dao层包下的类与xml映射文件名称相同
??
 
xml代码:

?
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper namespace="com.mypack.mapper.UserMapper" namespace表示命名空间 一般写 成包名.文件名-->
 
<mapper namespace="com.mypack.dao.StudentDao">
 
<!-- 配置属性和字段映射关系 一对一关系-->
<resultMap type="Student" id="studentResultMap">
<id property="sid" column="s_id"/>
<result property="sname" column="s_name"/>
<association property="banji" javaType="BanJI">
<id property="cid" column="c_id"/>
<result property="cname" column="c_name"/>
 
</association>
 
</resultMap>
 
<select id="queryOneStuById" parameterType="int" resultMap="studentResultMap">
select * from student s,class c where s.class_id =c.c_id and s.s_id=#{sid}
 
</select>
</mapper>

 


 
 
 
 
 

?
dao.java代码:
?
import com.mypack.entity.Student;

public interface StudentDao{

  public Student queryOneStuById(int id);      
}

 

?
测试类
@Test
public void testQueryAll(){
SqlSession session = MyBatisUtil.getSqlSession();
UserDao userdao = session.getMapper(UserDao.class);
List<Users> queryAllUsers = userdao.queryAllUsers();
for (Users users : queryAllUsers) {
System.out.println(users);
}
session.close();
}
 
 

?
MybatisUtil类代码:
 
public class MyBatisUtil {
 
public static SqlSessionFactory getSqlSessionFactory(){
 
// mybatis的配置文件
String resource = "mybatis.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(
resource);
// 构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
.build(is);
return sessionFactory;
}
 
public static SqlSession getSqlSession(){
return getSqlSessionFactory().openSession(true);
}
 
}

 

 
 
 
 
 
 
 

?
配置别名
<!-- 别名配置 -->
<!-- 配置方式一 -->
<!-- //单个重命名
<typeAliases>
<typeAlias type="com.mypack.entity.User" alias="User"/>
</typeAliases>
-->
<!-- 配置方式二 -->//批量重命名
<!-- 该包下的所有的类都可以直接写类名 -->
<typeAliases>
<package name="com.mypack.entity"/>
</typeAliases>
<!-- 这个是批量重命名-->
注:配置写在mybatis核心映射文档里的<configuration></configuration>标签里,就是第二步的映射文件
解决字段名与类的属性名不一致问题
 
<!-- 配置属性和字段映射关系 一对一关系-->//这个写在dao层下的映射文件里
<resultMap type="Student" id="studentResultMap">
<id property="sid" column="s_id"/>//表里的主键,property类里的属性, column表里的字段名
<result property="sname" column="s_name"/>//不可分割的单一类型
<association property="banji" javaType="BanJI">//可分割的多重类型
<id property="cid" column="c_id"/>
<result property="cname" column="c_name"/>
 
</association>
 
</resultMap>
 
配置log4j
 
1.导jar包
log4j-1.2.17.jar
??
2.配置log4j.properties文件

?
 
log4j.rootLogger=DEBUG,CONSOLE,file
#log4j.rootLogger=ERROR,ROLLING_FILE
log4j.logger.cn.kgc.dao=debug
log4j.logger.com.ibatis=debug 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug 
log4j.logger.java.sql.Connection=debug 
log4j.logger.java.sql.Statement=debug 
log4j.logger.java.sql.PreparedStatement=debug 
log4j.logger.java.sql.ResultSet=debug 
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
 
######################################################################################
# Console Appender  \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e
######################################################################################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
 
 
######################################################################################
# DailyRolling File  \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11
######################################################################################
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L)%m%n
 
 
log4j.logger.com.opensymphony.xwork2=error

 

 
遇到的坑
模糊查询 差不到中文问题
解决mybatis 模糊查询mysql 中文无法查询到结果的问题
一种原因是字符编码问题 可以修改mysql安装目录下面的my.ini文件
将default-character-set=utf-8 character-set-server=utf8
重启Mysql
用管理员方式启动 cmd 窗口,执行如下语句:
 
使用命令语句“net stop mysql” 停止 mysql 服务
使用命令语句“net start mysql” 启动 mysql 服务

 

mybatis使用步骤

原文:https://www.cnblogs.com/tomcat9/p/11002644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!