CREATE DATABASE `mybatis`; USE `mybatis`;
/* */ CREATE TABLE `user`( `id` INT(20) NOT NULL PRIMARY KEY, `name` VARCHAR(30) DEFAULT NULL, `pwd` VARCHAR(30) DEFAULT NULL )ENGINE = INNODB DEFAULT CHARSET = utf8; /* */ INSERT INTO `user` (`id`,`name`,`pwd`) VALUES (1,'汪瑞傑','123456'), (2,'汪瑞傑','528582'), (3,'汪瑞傑','286353');
<?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?useUnicode=ture&characterEncoding=UTF-8&serverTimezone=GMT%2B8"/> <property name="username" value="root"/> <property name="password" value="344165"/> </dataSource> </environment> </environments> </configuration>
package com.perwrj.utils; 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; /** * (工廠模式)sqlSessionFactory --> sqlSession * @author wangruijie * */ public class MyBatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { //獲取SqlSessionFactory對象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { // TODO: handle exception } } // 既然有了 SqlSessionFactory,顧名思義,咱們能夠從中得到 SqlSession 的實例。 // SqlSession 提供了在數據庫執行 SQL 命令所需的全部方法。 // 你能夠經過 SqlSession 實例來直接執行已映射的 SQL 語句 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
package com.perwrj.pojo; public class User { private int id; private String name; private String pwd; public User() { super(); // TODO Auto-generated constructor stub } public User(int id, String name, String pwd) { super(); 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 + "]"; } }
package com.perwrj.dao; import java.util.List; import com.perwrj.pojo.User; public interface UserMapper { List<User> getUserList(); }
<?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"> <!-- namespace綁定一個對應的Mapper/Dao接口 --> <mapper namespace="com.perwrj.dao.UserMapper"> <!-- 查詢 id=「重寫的方法名」 resultType=「返回值類型(全類名)」 --> <select id="getUserList" resultType="com.perwrj.pojo.User"> select * from mybatis.user </select> </mapper>
package com.perwrj.dao; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import com.perwrj.pojo.User; import com.perwrj.utils.MyBatisUtil; public class UserMapperTest { @Test public void test() { //得到SqlSession對象, SqlSession sqlSession = MyBatisUtil.getSqlSession(); try { // 方式一:getMapper執行sql:更加簡潔,類型更加安全,推薦使用 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> userList = userMapper.getUserList(); for (User user : userList) { System.out.println(user); } //方式一結束 // 方式二:老方法,不建議使用, /* * List<User> list = * sqlSession.selectList("com.perwrj.dao.UserMapper.getUserList"); * * for (User object : list) { System.out.println(object); } */ //方式二結束 }catch(Throwable e) { e.printStackTrace(); }finally { // 關閉sqlSession sqlSession.close(); } } }
org.apache.ibatis.binding.BindingException: Type interface com.perwrj.dao.UserMapper is not known to the MapperRegistry.(沒有在mybatis-config.xml核心配置文件中註冊Mapper)java.lang.ExceptionInInitializerError (初始化異常失敗,沒有找到UserMapper.xml文件)
2021-02-24javascript