Mybaits入门工程的搭建
1、简单创建一个java工程,导入依赖jar包
在工程下新建一个lib包,把要用到的jar包复制粘贴进去,然后全选右键add build path
2、配置SqlMapConfig.xml
1、右击工程新建一个Source Folder,命名为Config(可自由命名)用来存放配置文件
2、右击刚刚新建的Config,新建一个SqlMapConfig.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>
<!-- default 引用 environment 的 id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 ,环境可以有多个(当连接不同数据库的时候)-->
<environment id="default">
<!-- 使用原生 JDBC 事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
<property name="username" value="用户名"/>
<property name="password" value="密码"/>
</dataSource>
</environment>
</environments>
<!--resource:加载SQL语句文件 -->
<mappers>
<mapper resource="mybatis/user.xml"/>
</mappers>
</configuration>
3、配置log4j.properties
在src下新建一个log4j.properties文件,Log4j可以使日志输出到控制台或文件中,便于观察。
log4j.rootCategory=DEBUG, CONSOLE ,LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m%L %n
4、映射文件与SQL
<?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="a.b" >
<!-- id:方法名
parameterType:定义参数类型
resultType:返回值类型. 如果方法返回值是 list,在 resultType 中写 List 的泛型,
因为 mybatis
对 jdbc 封装,一行一行读取数据
-->
<select id="getUserById" resultType="com.java.pojo.User">
<!-- #{id}相当于jdbc的问号? -->
select id,username,password from stus where id = #{id}
</select>
</mapper>
5、User类
package com.java.pojo;
public class User {
private Integer id;
private String username;// 用户姓名
private String password;// 性别
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
6、Mybaits访问数据库代码
package com.java.text;
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 com.java.pojo.User;
public class Test {
public void testGetId() {
try {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//通过输入流创建SqlSessionFactory对象
SqlSessionFactory sessionFactory = ssfb.build(inputStream);
//创建SqlSession对象
SqlSession session = sessionFactory.openSession();
//执行查询
User user = session.selectOne("a.b.getUserById", 1);
System.out.println(user);
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
Test test = new Test();
test.testGetId();
}
}
这里有一个需要注意的地方,就是session.selectOne(“a.b.getUserById”, 1)里面的getUserById前面的名字要与SQL映射文件的mapper namespace=“a.b” 名字相对应,不然会无法加载文件
正在尝试写博客,把会的分享给你们,如有写的不好的地方,希望指点一下,谢谢!