1.简介
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
2.我的第一个Mybatis程序
2.1创建环境
2.2创建一个模板
<dependencies>
? <dependency>
? ? ? <groupId>mysql</groupId>
? ? ? <artifactId>mysql-connector-java</artifactId>
? ? ? <version>5.1.46</version>
? </dependency>
? <dependency>
? ? ? <groupId>junit</groupId>
? ? ? <artifactId>junit</artifactId>
? ? ? <version>4.12</version>
? </dependency>
? <dependency>
? ? ? <groupId>org.example</groupId>
? ? ? <artifactId>mybatis</artifactId>
? ? ? <version>1.0-SNAPSHOT</version>
? </dependency>
</dependencies>
<?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>
? <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?useSSl=false&useUnicode=ture&characterEncoding=UTF-8"/>
? ? ? ? ? ? ? <property name="username" value="root"/>
? ? ? ? ? ? ? <property name="password" value="root"/>
? ? ? ? ? </dataSource>
? ? ? </environment>
? </environments>
? <mappers>
? ? ? <mapper resource="org/mybatis/example/BlogMapper.xml"/>
? </mappers>
</configuration>
public class MybatisUtils {
? ?private static SqlSessionFactory sqlSessionFactory;
? ?static {
?
? ? ? ?try {
? ? ? ? ? ?//使用mybatis第一步,获取sqlSessionFactory对象
? ? ? ? ? ?String resource = "mybatis-config.xml";
? ? ? ? ? ?InputStream inputStream = Resources.getResourceAsStream(resource);
? ? ? ? ? ?SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
? ? ? } catch (IOException e) {
? ? ? ? ? ?e.printStackTrace();
? ? ? }
//现在您已经拥有了 SqlSessionFactory,顾名思义,您可以获取 SqlSession 的实例。
// SqlSession 绝对包含对数据库执行 SQL 命令所需的所有方法
? }
? ? ? ?public static SqlSession getSqlSession(){
? ? ? ? ? ?SqlSession sqlSession = sqlSessionFactory.openSession();
? ? ? ? ? ?return sqlSession;
?
? ? ? }
}
2.3编写代码
-
实体类 -
public class User {
? private int id;
? private String name;
? private String pwd;
?
? public User(int id, String name, String pwd) {
? ? ? this.id = id;
? ? ? this.name = name;
? ? ? this.pwd = pwd;
? }
?
? public int getId() {
? ? ? return id;
? }
?
? public void setId(int id) {
? ? ? this.id = id;
? }
?
? public String getName() {
? ? ? return name;
? }
?
? public void setName(String name) {
? ? ? this.name = name;
? }
?
? public String getPwd() {
? ? ? return pwd;
? }
?
? public void setPwd(String pwd) {
? ? ? this.pwd = pwd;
? }
?
? @Override
? public String toString() {
? ? ? return "User{" +
? ? ? ? ? ? ? "id=" + id +
? ? ? ? ? ? ? ", name='" + name + '\'' +
? ? ? ? ? ? ? ", pwd='" + pwd + '\'' +
? ? ? ? ? ? ? '}';
? }
} -
Dao接口 public interface UserDao { List<User>getUserList(); } -
接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件 <?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">
<!--namepace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.kuang.dao.UserDao">
<!--select查询语句-->
? <select id="getUserList" resultType="com.kuang.pojo.User">
? ? ? select *from mybatis.user
? </select>
?
?
</mapper>
2.4测试
public class UserDaoTest {
? @Test
? public void test(){
? ? ? //第一步:获得SqlSession对象
? ? ? SqlSession sqlSession = MybatisUtils.getSqlSession();
? ? ? //执行sql
? ? ? UserDao userDao = sqlSession.getMapper(UserDao.class);
? ? ? List<User> userList = userDao.getUserList();
? ? ? for (User user:userList){
? ? ? ? ? System.out.println(user);
? ? ? }
? ? ? //关闭SQLSession
? ? ? sqlSession.close();
?
?
? }
}
遇到的问题:
1.配置文件没有注册
2.绑定接口错误
3.方法名不对
4.返回类型不对
5.maven导出资源问题
项目结构
?
|