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方法