1、idea新建web项目并配置classes、lib
2、将数据库、mybatis的jar包拷贝到lib下
3、src下创建config目录,在config下新建配置文件Configure.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> <typeAliases> <typeAlias alias="User" type="com.lxj.entiry.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://127.0.0.1:3306/javatest" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <!--<!– // power by http://www.yiibai.com –>--> <mapper resource="com/lxj/entiry/User.xml" /> </mappers> </configuration>
4、src下创建com.lxj.entiry目录,在该目录下新建实体类User:
package com.lxj.entiry; public class User { private int id; private String name; private String dept; private String phone; private String website; public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } 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 getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
5、在com.lxj.entiry目录下新建映射文件User.xml(!!!这里一定要注意namespace,是对应的接口名称!!!):
<?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.lxj.dao.IUser"> <select id="getUser" parameterType="int" resultType="com.lxj.entiry.User"> SELECT * FROM USER WHERE id = #{userId} </select > <insert id="insertUser" parameterType="com.lxj.entiry.User"> INSERT INTO USER(name,dept,website,phone)VALUES (#{name},#{dept},#{website},#{phone}) </insert> <select id="getUserList" resultType="com.lxj.entiry.User"> SELECT * FROM USER </select> <update id="updateUser" parameterType="com.lxj.entiry.User"> UPDATE USER SET name=#{name},dept = #{dept},website = #{website},phone = #{phone} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM USER WHERE id = #{id} </delete> </mapper>
6、在src下新建文件夹com.lxj.dao,在此文件夹下新建接口IUser:
package com.lxj.dao; import com.lxj.entiry.User; import java.util.List; public interface IUser { public List<User> getUserList(); public void insertUser(User user); public void updateUser(User user); public void deleteUser(int userId); public User getUser(int id); }
7、src下新建test文件夹,在test文件夹下新建测试类Main:
package test; import java.io.Reader; import java.util.List; import com.lxj.dao.IUser; 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.lxj.entiry.*; public class Main { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try{ reader = Resources.getResourceAsReader("config/Configure.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); }catch (Exception e){ e.getStackTrace(); } } public static SqlSessionFactory getSession(){ return sqlSessionFactory; } public static void main(String[] args){ // testInsertUser(); // testGetList(); // testUpdateUser(); testDeleteUser(); } private static void testInsertUser(){ SqlSession session = sqlSessionFactory.openSession(); IUser userMapper = session.getMapper(IUser.class); System.out.printf("insert user start ...."); //插入数据 User user = new User(); user.setName("aa"); user.setDept("ddd"); user.setPhone("13247629622"); user.setWebsite("http://www.qqq.com"); userMapper.insertUser(user); session.commit(); System.out.printf("after insert ..."); } private static void testGetList(){ SqlSession session = sqlSessionFactory.openSession(); IUser iUser = session.getMapper(IUser.class); List<User> list = iUser.getUserList(); for(User user: list){ System.out.printf(user.getName()+" " +user.getDept()+" "+user.getPhone()+" "+user.getWebsite()); } } private static void testUpdateUser(){ SqlSession session = sqlSessionFactory.openSession(); IUser iUser = session.getMapper(IUser.class); User user = iUser.getUser(1); user.setName("ppp"); iUser.updateUser(user); session.commit(); System.out.printf("update success"); } private static void testDeleteUser(){ SqlSession session = sqlSessionFactory.openSession(); IUser iUser = session.getMapper(IUser.class); iUser.deleteUser(1); session.commit(); System.out.printf("delete success"); } }
8、运行测试类Main中的main方法