选择maven工程,方便管理 选择普通的java工程 下一步,输入相关的名字,最终的项目结构如下: 名字不一样,结构是一样的。
内容如下:
<?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> <typeAliases> <typeAlias type="com.example.mybatis01.domain.User" alias="user" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true" /> <property name="username" value="root" /> <property name="password" value="123456@#" /> </dataSource> </environment> </environments> <mappers> <!-- 注册userMapper.xml文件, userMapper.xml位于com.example.mybatis01.mapping这个包下,所以resource写成com/example/mybatis01/mapping/userMapper.xml --> <mapper resource="com/example/mybatis01/mapping/userMapper.xml" /> </mappers> </configuration>typeAlias节点给实体类取一个别名,方便后面引用,environment节点是数据库连接的相关信息,mapper节点指明映射文件的地址,上面的文件内容如下: User.java
package com.example.mybatis01.domain; public class User { private String username; private String password; private boolean enabled; 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; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } @Override public String toString() { return "User [username=" + username + ", password=" + password + ", enabled=" + enabled + "]"; } }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="com.example.mybatis01.mapping.UserMapper"> <insert id="insert" parameterType="user"> insert into users(username, password,enabled) values(#{username}, #{password},#{enabled}) </insert> <select id="selectUser" parameterType="String" resultType="user"> SELECT * FROM users WHERE username = #{username} </select> <select id="selectAll" resultType="user"> SELECT * FROM users </select> </mapper>然后写个App.java main类,测试使用mybatis访问到的数据,
package com.example.mybatis01; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.example.mybatis01.domain.User; /** * Hello world! * */ public class App { public static void main(String[] args) { //mybatis的配置文件 String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = App.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); /** * 映射sql的标识字符串, * com.example.mybatis01.mapping.UserMapper是userMapper.xml文件中mapper标签的namespace属性的值, * selectUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL */ String statement = "com.example.mybatis01.mapping.UserMapper.selectUser";//映射sql的标识字符串 //执行查询返回一个唯一user对象的sql User user = session.selectOne(statement, "alex"); System.out.println(user); System.out.println(session.selectList("com.example.mybatis01.mapping.UserMapper.selectAll")); } }最后项目的结构如下: 运行main方法,打印出结果如下: