您的位置:首页 > 编程语言 > Java开发

maven搭建mybatis--入门程序--001

2016-05-15 21:53 525 查看


1.mybatis环境搭建:

   下载mybatis的jar包,和相关的jar包。我是通过maven下载的,项目结构如图:



然后把相关的mybatis的jar包下载到Maven的Dependencies中。如下图所示:




2.创建log4j文件,把他放到main/resources下面:

 

关于log4j文件里面的内容,如下所示:

##开发时候设置为debug,生产时候设置为info
log4j.rootLogger=debug,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
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


然后在resources目录下添加sqlMapconfig.xml(全局配置文件)文件和对应的mapper的配置文件。


3.根据用户id查询用户信息:


3.1配置sqlmapconfig的配置文件的内容:

   该文件中在没有与spring整合之前,主要配置mybatis的运行环境、事物和数据源等。

<?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>
 
<!-- 生命与表对应的基类,否则在User.xml中报错,提示无法找到User这个类 -->
<typeAliases>
<typeAlias alias="User" type="zone.pigruno.model.User"/>
</typeAliases>
<!-- 配置数据源 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="pigruno" />
</dataSource>
</environment>
</environments>
<!-- 以下是加载映射文件 -->
<mappers>
<mapper resource="sqlmap/User.xml" />
</mappers>
</configuration>



3.2根据用户id查询用户信息


3.2.1映射文件的配置


在映射文件中配置sql语句。映射文件的命名规则就是XxxMapper.xml.如果是user相关的就命名为UserMapper.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="User">
<select id="findUserById" parameterType="int" resultType="User">
select*from user where id=#{id}
</select>
<select id="findUserByName" parameterType="String" resultType="User">
select*from user where userName like #{userName}
</select>
<insert id="insertUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">
insert into user (userName,password,sex,phone,email,address,birthday) value (#{userName},#{password},#{sex},#{phone},#{email},#{address},#{birthday})
</insert>
</mapper>


namespace为命名空间,目的是对sql进行分类化管理,也是一种sql隔离。例如namespace="User",代表着user相关的sql都放在了一起。

id为sql的id,也是statement的Id。parameterType代表输入类型,resultType代表输出类型。#{id}代表输入的参数名为id。如果输入参数是简单类型,那么{}中的参数名字可以任意。

package zone.pigruno.model;
 
import java.util.Date;
 
/**
* @author liuwl:
* @version 创建时间:2016年5月15日 下午6:57:35
*
*/
public class User {
 
private int userId;
private String userName;
private String mobilePhone;
private String address;
private String email;
private Short userType;
private char sex;
private Date birthday;
 
public String getUserName() {
return userName;
}
 
public String getMobilePhone() {
return mobilePhone;
}
 
public String getAddress() {
return address;
}
 
public String getEmail() {
return email;
}
 
public Short getUserType() {
return userType;
}
 
public char getSex() {
return sex;
}
 
public void setUserName(String userName) {
this.userName = userName;
}
 
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
 
public void setAddress(String address) {
this.address = address;
}
 
public void setEmail(String email) {
this.email = email;
}
 
public void setUserType(Short userType) {
this.userType = userType;
}
 
public void setSex(char sex) {
this.sex = sex;
}
 
public int getUserId() {
return userId;
}
 
public void setUserId(int userId) {
this.userId = userId;
}
 
public Date getBirthday() {
return birthday;
}
 
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}



3.2.2在sqlMapConfig中加载UserMapper.xml文件:


<mappers>
<mapper resource="sqlmap/UserMapper.xml" />
</mappers>


3.3测试程序:

package zone.pigruno.model;
 
import static org.junit.Assert.*;
 
import java.io.IOException;
import java.io.InputStream;
 
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
 
/**
* @author liuwl:
*@version 创建时间:2016年5月15日 下午7:23:22
*
*/
public class UserTest {
 
@Test
public void findUserByUserId() throws IOException {
// mybatis的配置文件
String resource = "SqlMapConfig.xml";
 
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建sqlsession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 通过sqlSession操作数据库
User user = sqlSession.selectOne("User.findUserById", 1);
System.out.println(user.getUserName());
//释放资源
sqlSession.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven mybatis eclipse