1.在www.arpache.org 下载maven并进行环境变量配置。
2.eclipse新建maven项目:
2.1 生成的项目中pom.xml文件是用来统一管理包的。
2.2 将jdk版本升级。
3.搭建mybatis开发环境:
3.1: jdbc驱动(mavenRepository中搜索并复制代码到pom.xml中,版本5.1.40)
3.2:mybatis核心包:(GitHub中搜索复制代码,版本3.5.1)
3.3 :log4j.jar :(mavenRepository中搜索,复制代码,版本1.7.21)
3.4:log4j.properties (输出到控制台,复制即可)
4.mybatis配置:
4.1:全局配置(mybatis-Config.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>
<settings>
// 自动生成主键
<setting name="useGeneratedKeys" value="true"/>
</settings>
<typeAliases>
// 包点类名称
</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/shopdb" />
<property name="username" value="root" />
<property name="password" value="rootroot" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zhang/mapper/ShopUserMapper.xml"/>
</mappers>
</configuration>
4.2.关于表的类:ShopUser.java
package com.zhang.model;
public class ShopUser {
private int id;
private String user_name;
private char user_sex;
private String user_phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public char getUser_sex() {
return user_sex;
}
public void setUser_sex(char user_sex) {
this.user_sex = user_sex;
}
public String getUser_phone() {
return user_phone;
}
public void setUser_phone(String user_phone) {
this.user_phone = user_phone;
}
}
4.21:Mapper配置( 自动解决程序中对象 与 数据库关系,主要包含数据库增删改查操作的sql语句)
<?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.zhang.mapper.ShopUserMapper">
// 增加
<insert id="addUser" parameterType="com.zhang.model.ShopUser" useGeneratedKeys="true" keyProperty="id">
insert into ShopUser(user_name,user_sex,user_phone) values(#{user_name},#{user_sex},#{user_phone})
</insert>
// 删除
<delete id="delUser">
delete from ShopUser where id=#{id};
</delete>
// 修改
<update id="updateUser" parameterType="com.zhang.model.ShopUser">
update ShopUser set user_name=#{user_name},user_sex=#{user_sex},user_phone=#{user_phone}
where id=#{id}
</update>
// 查询
// resultType代表返回类型,parameterType代表参数类型
<select id="queryUser" resultType="com.zhang.model.ShopUser">
select user_name,user_sex,user_phone from ShopUser
</select>
</mapper>
5.工具类 DBUTils.java
package com.zhang.utils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class DBUtils {//工具类
private static String resource="mybatis-Config.xml";
private static InputStream input=null;
private static SqlSessionFactory sqlSessionFactory=null;
static{
try {
input=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(input);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(String environment){
if(environment!=null&&environment.equals("")&&environment.equals("mysql")){
try {
input=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(input,environment);
} catch (IOException e) {
e.printStackTrace();
}
}else if(environment!=null&&environment.equals("")&&environment.equals("environment")){
try {
input=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(input);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSessionFactory;
}
return sqlSessionFactory;
}
}
6.dao层(ShopUserDao.java)
package com.zhang.Dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import com.zhang.model.ShopUser;
import com.zhang.utils.DBUtils;
public class ShopUserDao {
private static Logger logger=Logger.getLogger(ShopUserDao.class);//日志
//增加
public static int addShopUser(ShopUser user)throws Exception{
SqlSession session=null;
int i=0;
try{
session=DBUtils.getSqlSessionFactory(null).openSession();
session.insert("com.zhang.mapper.ShopUserMapper.addUser",user);
i=user.getId();
session.commit();
}catch(Exception e){
logger.error(e);//将异常记录到日志里
session.rollback();//回滚
throw new RuntimeException();
}finally{
if(session!=null)
session.close();
}
return i;//返回影响的行数
}
//删除
public static int delShopUser(int id) {
SqlSession session = null;
int i = 0;
try {
session = DBUtils.getSqlSessionFactory(null).openSession();
i = session.delete("com.zhang.mapper.ShopUserMapper.delUser", id);
session.commit();
} catch (Exception e) {
logger.error(e);
session.rollback();
throw new RuntimeException();
} finally {
if (session != null)
session.close();
}
return i;
}
//修改
public static int updateShopUser(ShopUser user) {
SqlSession session = null;
int i = 0;
try {
session = DBUtils.getSqlSessionFactory(null).openSession();
i = session.update("com.zhang.mapper.ShopUserMapper.updateUser", user);
session.commit();
} catch (Exception e) {
logger.error(e);
session.rollback();
throw new RuntimeException();
} finally {
if (session != null)
session.close();
}
return i;
}
//查询
public static List<ShopUser> queryShopUser() {
SqlSession session = null;
List<ShopUser> list = null;
try {
session = DBUtils.getSqlSessionFactory(null).openSession();
list = session.selectList("com.zhang.mapper.ShopUserMapper.queryShopUser");
} catch (Exception e) {
logger.error(e);
throw new RuntimeException();
} finally {
if (session != null)
session.close();
}
return list;
}
}
7.测试类(TestShopUserDao.java)
package com.zhang.first;
import java.util.List;
import org.junit.Test;
import com.zhang.Dao.ShopUserDao;
import com.zhang.model.ShopUser;
public class TestShopUserDao {//测试ShopUserDao
private static ShopUserDao user=new ShopUserDao();
@Test
//增加测试
public void testAddShopUser(){
ShopUser user=new ShopUser();
user.setUser_name("王福恩");
user.setUser_sex('男');
user.setUser_phone("17829555536");
try {
int i=ShopUserDao.addShopUser(user);
System.out.println(i);
} catch (Exception e) {
e.printStackTrace();
}
}
//删除测试
public void testDelShopUser(){
int i=ShopUserDao.delShopUser(35);
System.out.println(i);
}
//修改
public void testUpdateShopUser(){
ShopUser user=new ShopUser();
user.setUser_name("苏如月");
user.setUser_sex('女');
user.setUser_phone("1782955999");
user.setId(36);
int i=ShopUserDao.updateShopUser(user);
System.out.println(i);
}
public void testQueryShopUser(){
List<ShopUser> list=ShopUserDao.queryShopUser();
for(ShopUser user:list){
System.out.println(user.getId()+user.getUser_name());
}
}
}