Mybatis自动生成 实体类 方法 和 代码

Mybatis自动生成 实体类

mybatis需要的包

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的包根据自己的版本来决定。

mybatis 建包

xml 和 接口:
Mybatis自动生成 实体类 方法 和 代码_第1张图片

如果你需要扫描包的话 要将 xml 和 接口放在同一个包下面

自定义类:Mybatis自动生成 实体类 方法 和 代码_第2张图片

mybatis:集成配置xml
在这里插入图片描述

说明一下:java和resource 是同级目录

调试和数据库配置信息:
jdbc.properties: 数据库的配置
log4j.properties: 日志------可以不配
Mybatis自动生成 实体类 方法 和 代码_第3张图片

数据库结构:
Mybatis自动生成 实体类 方法 和 代码_第4张图片

Mybatis自动生成 实体类 方法 和 代码_第5张图片

代码

这代码只有我本人写的一个 用户简单信息修改:

建议在自己写的接口后面加上抛出异常,容易检查自己的错误。
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

最后加一个测试类:
Mybatis自动生成 实体类 方法 和 代码_第6张图片

说明一下: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();
    }

}

说明:
本人是一个新手,我什么不对的地方希望大家指出。
写博客主要是得点积分,下载需要的支援。
给自己留一个笔记。

你可能感兴趣的:(mybatis)