Mybatis 可以 通过 xml 来配置你要实现的sql 也 可以通过注解 配置。
在这里我建议是通过xml配置,因为动态sql语言通过xml配置更加的形象。有便于程序员的编译
简介一下我的编译工具:
idea
说需要的包:
junit-4.12.jar ----这个是一个来测试的
lombok.jar ----如果直接写 get set 方法就不需要这个包
mybatis-3.4.6.jar
mysql-connector-java-5.1.46-bin
mysql的包根据自己的版本来决定。
如果你需要扫描包的话 要将 xml 和 接口放在同一个包下面
说明一下:java和resource 是同级目录
调试和数据库配置信息:
jdbc.properties: 数据库的配置
log4j.properties: 日志------可以不配
这代码只有我本人写的一个 用户简单信息修改:
建议在自己写的接口后面加上抛出异常,容易检查自己的错误。
UserMapper.java代码:
import example.model.User;
import java.util.List;
public interface UserMapper {
public void inputUser(User user)throws Exception; //输入数据库
public User outputUser(String name)throws Exception; //根据姓名查询数据
public void deleteUser(String name)throws Exception; // 根据姓名删除
public void updateUser(User user)throws Exception; //根据姓名修改密码
public void updatePer(User user)throws Exception; //修改用户权限
public List outputUserList()throws Exception; //浏览所有用户信息
}
UserMapper.xml代码:
重点:
namespace 中的 信息 必须为你的接口 位置:namespace=“example.dao.UserMapper”
id也是对应方法的名称:id=“inputUser”
insert into transactionuser(name,pass) value (#{name},#{pass})
UPDATE transactionuser set pass = #{pass} where name = #{name}
update transactionuser set perminssion = #{perminssion} where name = #{name}
delete from transactionuser where name = #{name}
User.java 类代码
@Getter:自动生产get方法
@Setter:自动生产set方法
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class User {
public static final int A = 2,B = 1,C = 0;
private int id;
private String name;
private String pass;
private Integer perminssion; // 用户等级 A:管理员 B: 超级用户 C:普通用户
}
SqlMapConfig.xml 代码
jdbc.properties 代码
database=org.apache.commons.dbcp.BasicDataSource
database.url=jdbc:mysql://localhost:3306/yj?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
database.username=username
database.password=password
database.driver=com.mysql.jdbc.Driver
说明一下:server和dao 是同级目录
Userservice.java 代码:
import example.model.User;
public interface UserService{
public static final String NO_name = "NO_name";
public static final String NO_pass = "NO_pass";
public String enter(User user); //登入 NO_name代表用户名错误 NO_pass代表密码错误
public boolean register(User user); //注册用户
public void set_admin(User name); //设置管理员权限 C:普通用户 B:为超级用户 A:管理员
public void insetPass(User user); //修改密码
}
UserServiceImp.java 实现类:
package example.server.imp;
import example.dao.UserMapper;
import example.model.User;
import example.server.UserService;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class UserServiceImp implements UserService {
private SqlSessionFactory sqlSessionFactory =null;
private SqlSession sqlSession = null;
@Before
public void setUp() {
String resource = "mybatis/SqlMapConfig.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
System.out.println("配置mybatis.xml失败");
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
}
@Test
public void Test(){
User user = new User();
user.setName("username");
user.setPass("password");
System.out.println(register(user));
}
public String enter(User user) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User u = null;
try {
u = userMapper.outputUser(user.getName());
if (u == null)
return "NO_name";
else if(!u.getPass().equals(user.getPass()))
return "NO_pass";
} catch (Exception e) {
System.out.println("登入失败");
e.printStackTrace();
}
return user.getName();
}
public boolean register(User user) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User u = null;
try {
u = userMapper.outputUser(user.getName());
if(u != null)
return false;
else
userMapper.inputUser(user);
} catch (Exception e) {
System.out.println("注册入失败");
e.printStackTrace();
}
return true;
}
public void set_admin(User name) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
}
public void insetPass(User user) {
}
@After
public void free(){
sqlSession.close();
}
}
说明:
本人是一个新手,我什么不对的地方希望大家指出。
写博客主要是得点积分,下载需要的支援。
给自己留一个笔记。