Springi和Mybatis整合小案例

 

一案例效果展示:

登录模块:

 

用户注册模块:

 

二项目功能介绍:

(1)登录系统功能介绍:

 1)如果用户未输入用户名和密码,直接点击“”确认“按钮”,会提示用户名和密码不能为空;

  如图:

  

 

  2)如果用户未输入用户名,用户名输入框失去焦点,会提示用户不能为空

   

  3)如果用户未输入密码,密码输入框失去焦点,会提示密码不能为空

  

 

  4)如果用户输入了用户名和密码,会弹出登录中的提示框,但用户名或密码错误,系统会在控制台输出登录失败:

  图一:

      

     图二:

  

 

  5)如果用户名和密码正确,会弹出登录提示框,并在控制台输出登录成功.

  

  

  (2)注册系统功能介绍

  1)注册窗体的输入框添加的焦点监听器,会约束用户的输入。

  

  2)如果用户输入的信息合法,则向数据库插入一条记录。

    三:项目目录结构

  

  四、代码

  (1)在com.chenjiawei.frame包下的类文件:

    1)登录窗体代码:

 

package com.chenjiawei.frame;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.chenjiawei.service.UserService;

/**
 * 登录窗体
 * @author SS
 *
 */
public class LoginFrame extends JFrame implements ActionListener,FocusListener,Runnable{
    private JTextField TextUsername,TextPassword;
    private JLabel UsernameErrorTipe,PasswordErrorTipe;
    private JButton regist,login;
    private Boolean canLogin=false;
    private Thread thread;
    private String username;
    private String password;
    private LoginTipeFrame  ltf;
    
    
    public LoginFrame(){
        init();
        setVisible(true);//设置窗体可视化
        setTitle("登录"); //设置标题
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体的关闭操作
        setBounds(500, 200, 600, 500);
        thread=new Thread(this);
        
    }
    
    /**
     * 初始化窗体内部控件
     */
    private void init(){
        Box box1 =Box.createHorizontalBox(); //创建用户名水平盒子
        Box box2 =Box.createHorizontalBox(); //创建密码水平盒子
        Box box3 =Box.createHorizontalBox(); //创建登录或取消水平盒子
        Box box=Box.createVerticalBox();     //创建垂直盒子
        
        JLabel LabUsername=new JLabel("用户名:");
        TextUsername=new JTextField(10);
        UsernameErrorTipe=new JLabel("用户名不存在");
        UsernameErrorTipe.setVisible(false);
        TextUsername.addFocusListener(this);  //添加焦点事件
        
        JLabel LabPassword=new JLabel("密    码:");
        TextPassword=new JTextField(10);
        PasswordErrorTipe=new JLabel("密  码  错  误  ");
        PasswordErrorTipe.setVisible(false);
        TextPassword.addFocusListener(this);  //添加焦点事件
        
        
        regist=new JButton("注册");
        login=new JButton("登录");
        regist.addActionListener(this);
        login.addActionListener(this);
        
        
        //将对于控件添加到盒子里面
        box1.add(LabUsername);
        box1.add(Box.createHorizontalStrut(10));
        box1.add(TextUsername);
        box1.add(Box.createHorizontalStrut(10));
        box1.add(UsernameErrorTipe);
        
        box2.add(LabPassword);
        box2.add(Box.createHorizontalStrut(10));
        box2.add(TextPassword);
        box2.add(Box.createHorizontalStrut(10));
        box2.add(PasswordErrorTipe);
        
        box3.add(regist);
        box3.add(Box.createHorizontalStrut(10));
        box3.add(login);
        
        box.add(Box.createVerticalStrut(150));
        box.add(box1);
        box.add(Box.createVerticalStrut(10));
        box.add(box2);
        box.add(Box.createVerticalStrut(10));
        box.add(box3);
        
        this.setLayout(new FlowLayout());    //设置布局
        this.add(box);
        
        
        
    }
    
    /**
     * 给登录和注册按钮添加事件处理程序
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == login){
            System.out.println("登录");
            username=TextUsername.getText().trim();
            password=TextPassword.getText().trim();
            
            
            if(username.trim() !=null && !username.trim().equals("") 
                    && password.trim() !=null && !password.equals("")){
                canLogin=true;
                thread.start();    //开启线程
            }
            if(canLogin){
                System.out.println("登录........");
                ltf=new LoginTipeFrame();    //实例化登录提示窗体
            }else{
                UsernameErrorTipe.setText("用户名不能为空");
                PasswordErrorTipe.setText("密码不能为空");
                UsernameErrorTipe.setVisible(true);
                PasswordErrorTipe.setVisible(true);
            }
            
        }else if(e.getSource()==regist){
            new RegiesrFrame();
            this.dispose(); //关闭当前窗体
        }
        
    }
    
    
    /**
     * 给用户输入框和密码输入框添加事件处理程序
     */
    @Override
    public void focusGained(FocusEvent e) {
        if(e.getSource()==TextUsername){
            UsernameErrorTipe.setText("");
            UsernameErrorTipe.setVisible(false);
        }else if(e.getSource()==TextPassword){
            PasswordErrorTipe.setText("");
            PasswordErrorTipe.setVisible(false);
        }
    }

    @Override
    public void focusLost(FocusEvent e) {
        if(e.getSource()==TextUsername){
            if(TextUsername.getText().trim() ==null || 
                    TextUsername.getText().trim().equals("")){
                
                UsernameErrorTipe.setText("用户名不能为空");
                UsernameErrorTipe.setVisible(true);
                canLogin=false;
            }
        }else if(e.getSource()==TextPassword){
            if(TextPassword.getText().trim() == null || 
                    TextPassword.getText().trim().equals("")){
                PasswordErrorTipe.setText("密码不能为空");
                PasswordErrorTipe.setVisible(true);
                canLogin=false;
            }
        }
        
    }

    @Override
    public void run() {
        
        try {
            Thread.sleep(200);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService us=applicationContext.getBean(UserService.class);
        boolean isSuccessLogin=us.doLogin(username, password);
        
        if(isSuccessLogin){
            System.out.println("登录成功");
            ltf.dispose();    //关闭登录提示窗体
        }else{
            System.out.println("登录失败");
            ltf.dispose();    //关闭登录提示窗体
        }
        
    }

}

 

 

 

 

 

       2)注册窗体

package com.chenjiawei.frame;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.chenjiawei.po.User;
import com.chenjiawei.service.UserService;
/**
 * 注册窗体
 * @author SS
 *
 */
public class RegiesrFrame extends JFrame implements ActionListener,FocusListener{
    
    private JTextField TextUsername,TextPassword,TextConfimPassword,TextIDCard;
    private JLabel UsernameErrorTipe,PasswordErrorTipe,ConfimPasswordErrorTipe,IDCardErrorTipe;
    private JRadioButton boy,gril,China,HongKong,Others;
    private JButton canace,regiest;
    private Boolean isUsername=false,isPassword=false,isConfimPassword=false,isIDCard=false;    //判断用户名、密码、确认密码、身份证是否可以注册
    
    public RegiesrFrame(){
        init();
        setBounds(500, 200, 600, 500);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("注册");
    }
    
    /**
     * 初始化控件
     */
    private void init(){
        Box box1=Box.createHorizontalBox();
        Box box2=Box.createHorizontalBox();
        Box box3=Box.createHorizontalBox();
        Box box4=Box.createHorizontalBox();
        Box box5=Box.createHorizontalBox();
        Box box6=Box.createHorizontalBox();
        Box box7=Box.createHorizontalBox();
        Box box=Box.createVerticalBox();
        
        JLabel LabUsername=new JLabel("用  户  名:");
        TextUsername=new JTextField(10);
        UsernameErrorTipe=new JLabel("    用户名不合法");
        UsernameErrorTipe.setVisible(false);
        TextUsername.addFocusListener(this);  //给输入框添加焦点监听器
        
        JLabel LabPassword=new JLabel("密        码:");
        TextPassword=new JTextField(10);
        PasswordErrorTipe=new JLabel("        密码不合法");
        PasswordErrorTipe.setVisible(false);
        TextPassword.addFocusListener(this);  //给输入框添加焦点监听器
        
        JLabel LabConfimPassword=new JLabel("确认密码:");
        TextConfimPassword=new JTextField(10);
        ConfimPasswordErrorTipe=new JLabel("两次密码不一致");
        ConfimPasswordErrorTipe.setVisible(false);
        TextConfimPassword.addFocusListener(this);  //给输入框添加焦点监听器
        
        JLabel Sex=new JLabel("性         别:");
        
        boy=new JRadioButton("  男        ");
        gril=new JRadioButton("  女                                                   ");
        
        ButtonGroup group1=new ButtonGroup();
        group1.add(boy);
        group1.add(gril);
        
        JLabel LabIDCardType=new JLabel("身份证类型:  ");
        
        China=new JRadioButton("大    陆");
        HongKong=new JRadioButton("港    澳");
        Others=new JRadioButton("其    他               ");
        
        ButtonGroup group2=new ButtonGroup();
        group2.add(China);
        group2.add(HongKong);
        group2.add(Others);
        
        JLabel LabIDCard=new JLabel("身  份  证:");
        TextIDCard=new JTextField(10);
        IDCardErrorTipe=new JLabel("    身份证不合法");
        IDCardErrorTipe.setVisible(false);
        TextIDCard.addFocusListener(this);  //给输入框添加焦点监听器
        
        canace=new JButton("取消");
        regiest=new JButton("注册");
        
        canace.addActionListener(this);
        regiest.addActionListener(this);
        
        
        box1.add(LabUsername);
        box1.add(Box.createHorizontalStrut(10));
        box1.add(TextUsername);
        box1.add(Box.createHorizontalStrut(10));
        box1.add(UsernameErrorTipe);
        
        
        box2.add(LabPassword);
        box2.add(Box.createHorizontalStrut(10));
        box2.add(TextPassword);
        box2.add(Box.createHorizontalStrut(10));
        box2.add(PasswordErrorTipe);
        
        box3.add(LabConfimPassword);
        box3.add(Box.createHorizontalStrut(10));
        box3.add(TextConfimPassword);
        box3.add(Box.createHorizontalStrut(10));
        box3.add(ConfimPasswordErrorTipe);
        
        box4.add(Sex);
        box4.add(Box.createHorizontalStrut(10));
        box4.add(boy);
        box4.add(Box.createHorizontalStrut(10));
        box4.add(gril);
        
        box5.add(LabIDCardType);
        box5.add(Box.createHorizontalStrut(10));
        box5.add(China);
        box5.add(Box.createHorizontalStrut(10));
        box5.add(HongKong);
        box5.add(Box.createHorizontalStrut(10));
        box5.add(Others);
        
        box6.add(LabIDCard);
        box6.add(Box.createHorizontalStrut(10));
        box6.add(TextIDCard);
        box6.add(Box.createHorizontalStrut(10));
        box6.add(IDCardErrorTipe);
        
        box7.add(canace);
        box7.add(Box.createHorizontalStrut(30));
        box7.add(regiest);
        
        
        box.add(Box.createVerticalStrut(50));
        box.add(box1);
        box.add(Box.createVerticalStrut(10));
        box.add(box2);
        box.add(Box.createVerticalStrut(10));
        box.add(box3);
        box.add(Box.createVerticalStrut(10));
        box.add(box4);
        box.add(Box.createVerticalStrut(10));
        box.add(box5);
        box.add(Box.createVerticalStrut(10));
        box.add(box6);
        box.add(Box.createVerticalStrut(10));
        box.add(box7);
        
        this.setLayout(new FlowLayout());    //设置布局
        this.add(box);
        
        
        
    }
    /**
     * 给注册和取消添加按钮监听器
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == regiest){
            //&& isPassword && isConfimPassword && isIDCard
            if(isUsername && isPassword && isConfimPassword && isIDCard){
                String username=TextUsername.getText().trim();
                String password=TextPassword.getText().trim();
                String sex="男";
                if(gril.isSelected()){
                    sex="女";
                }
                
                String idCardType="大陆";
                if(HongKong.isSelected()){
                    idCardType="港澳";
                }else if(Others.isSelected()){
                    idCardType="其他";
                }
                String idCard=TextIDCard.getText().trim();
                
                ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
                UserService us=applicationContext.getBean(UserService.class);
                
                //封装User数据
                User user=new User();
                user.setUsername(username);
                user.setPassword(password);
                user.setSex(sex);
                user.setIdCardType(idCardType);
                user.setIdCard(idCard);
                System.out.println(user);
                //添加用户数据
                boolean doRegiest=us.doRegiest(user);
                if(doRegiest){
                    dispose();
                    new ConfimFrame("注册成功",1);
                }else{
                    new ConfimFrame("注册失败",0);
                }
            }else{
                new ConfimFrame("信息不完善,请填写信息",0);
            }
        }
        
    }
    
    /**
     * 给输入框获取焦点的回调函数
     * @param e
     */
    @Override
    public void focusGained(FocusEvent e) {
        
        if(e.getSource() == TextUsername){
            UsernameErrorTipe.setVisible(false);
        }else if(e.getSource() == TextPassword){
            PasswordErrorTipe.setVisible(false);
        }else if(e.getSource() == TextConfimPassword){
            ConfimPasswordErrorTipe.setVisible(false);
        }else if(e.getSource() == TextIDCard){
            IDCardErrorTipe.setVisible(false);
        }
        
    }
    /**
     * 输入框失去焦点的回调函数
     */
    @Override
    public void focusLost(FocusEvent e) {
        
        if(e.getSource() == TextUsername){ 
            String username =TextUsername.getText().trim();    //获取输入框文本内容
            if(TextUsername.getText().trim() == null 
                    || TextUsername.getText().trim().equals("")){
                UsernameErrorTipe.setText("用户名不能为空");
                UsernameErrorTipe.setVisible(true);
                isUsername=false;     //用户名不合法    
            }else{
                ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
                UserService userService=applicationContext.getBean(UserService.class);
                boolean isSameUsername=userService.isSameUsername(username);
                if(isSameUsername){
                    UsernameErrorTipe.setText("用户名已存在");
                    UsernameErrorTipe.setVisible(true);
                    isUsername=false;     //用户名不合法    
                }else{
                    UsernameErrorTipe.setText("该用户名可以注册");
                    UsernameErrorTipe.setVisible(true);
                    isUsername=true;     //用户名合法    
                }
            }
        }else if(e.getSource() == TextPassword){
            String password=TextPassword.getText().trim();
            if(password ==null || password.equals("")){
                PasswordErrorTipe.setText("密码不能为空");
                PasswordErrorTipe.setVisible(true);
                isPassword=false; //密码不合法
            }else{
                if(password.length()>=6){
                    PasswordErrorTipe.setText("");
                    PasswordErrorTipe.setVisible(false);
                    isPassword=true; //密码合法
                }else{
                    PasswordErrorTipe.setText("密码长度不能小于6");
                    PasswordErrorTipe.setVisible(true);
                    isPassword=false; //密码不合法
                }
            }
        }else if(e.getSource() == TextConfimPassword){
            String password=TextPassword.getText().trim();
            String ConfimPassword=TextConfimPassword.getText().trim();
            if(ConfimPassword ==null || ConfimPassword.equals("")){
                ConfimPasswordErrorTipe.setText("确认密码不能为空");
                ConfimPasswordErrorTipe.setVisible(true);    
                isConfimPassword=false; //确认密码不合法
            }else{
                if(password.equals(ConfimPassword)){
                    ConfimPasswordErrorTipe.setText("");
                    ConfimPasswordErrorTipe.setVisible(false);
                    isConfimPassword=true; //确认密码合法
                }else{
                    ConfimPasswordErrorTipe.setText("两次密码不一致");
                    ConfimPasswordErrorTipe.setVisible(true);
                    isConfimPassword=false; //确认密码不合法
                }
            }
            
            
        }else if(e.getSource() == TextIDCard){
            
            String idCard=TextIDCard.getText().trim();
            if(idCard.length()==18){    
                ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
                UserService userService=applicationContext.getBean(UserService.class);
                boolean isSameIdCard= userService.isSameIdCard(idCard);
                if(!isSameIdCard){
                    IDCardErrorTipe.setVisible(false);
                    isIDCard=true;    //身份合法
                }else{
                    IDCardErrorTipe.setText("身份证已存在");
                    IDCardErrorTipe.setVisible(true);
                    isIDCard=false;//身份合法
                }
                
                
            }else{
                IDCardErrorTipe.setVisible(true);
                isIDCard=false;//身份合法
            }
            
        }
        
    }
    
}

 

       3)登录提示窗体

      

package com.chenjiawei.frame;

import java.awt.Frame;

import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JLabel;

import org.apache.tools.ant.taskdefs.Sleep;

import aj.org.objectweb.asm.Handle;

/**
 * 登录提示窗体
 * @author SS
 *
 */
public class LoginTipeFrame extends JFrame implements Runnable{
    
    private JLabel tipe;
    
    private String msg="登录";
    
    private Thread thread;

    public LoginTipeFrame(){
        init();
        setVisible(true);//设置窗体可视化
        setTitle("登录状态提示框"); //设置标题
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体的关闭操作
        setBounds(680, 360, 200, 200);
        thread=new Thread(this);
        thread.start();
    }
    
    /**
     * 初始化控件
     */
    private void init(){
        Box box=Box.createVerticalBox();
        Box box1=Box.createHorizontalBox();
        tipe=new JLabel(msg);
        box1.add(tipe);
        box.add(Box.createVerticalStrut(60));
        box.add(box1);
        this.add(box);
        
    }

    @Override
    public void run() {
        int n=1;
        while(n<=3){
        
            for(int i=1;i<=5;i++){
                try {
                    thread.sleep(200);
                    msg+=".";
                    tipe.setText(msg);
                            
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            msg="登录";
            n++;
        }
    }
    

}

 

  (2)在com.chenjiawei.mapper包下的类文件

    1)数据库操作接口类UserMapper:

    

package com.chenjiawei.mapper;

import com.chenjiawei.po.User;

public interface UserMapper {
    
    public User findUserByUsernameAndPassword(User user);
    
    public User findUserByUsername(String username);
    
    public int insertUser(User user);
    
    public User findUserByIdCard(String idCard);
    
    }

 

    2)数据库映射文件:

 

<?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.chenjiawei.mapper.UserMapper">
  
      <!--登录查询  -->
      <select id="findUserByUsernameAndPassword" parameterType="user" resultType="user">
          select * from tb_user where username=#{username} and password=#{password}
      </select>
      
      <!-- 用户名是否已存在 -->
      <select id="findUserByUsername" parameterType="String" resultType="user">    
          select * from tb_user where username=#{username}
      </select>
      
      <!--添加用户信息  -->
      <insert id="insertUser" parameterType="user">
          insert into tb_user(username,password,sex,idCardType,idCard)
          values(#{username},#{password},#{sex},#{idCardType},#{idCard})    
      </insert>
      
      <!--查询身份证信息是否已存在  -->
      <select id="findUserByIdCard" parameterType="String" resultType="user">
          select * from tb_user where idCard=#{idCard}
      </select>
      
  
  </mapper>

 

 

 

  (3)在com.chenjiawei.po包下的类文件

    1)用户实体类

    

package com.chenjiawei.po;

/**
 * 用户实体类
 * @author SS
 *
 */

public class User {
    
    private String username;
    
    private String password;
    
    private String sex;
    
    private String idCardType;
    
    private String idCard;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getIdCardType() {
        return idCardType;
    }

    public void setIdCardType(String idCardType) {
        this.idCardType = idCardType;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password + ", sex=" + sex + ", idCardType=" + idCardType
                + ", idCard=" + idCard + "]";
    }
    
    
    
    
}

 

  (4)在com.chenjiawei.service包下的类文件

    1)UserService

 

package com.chenjiawei.service;

import com.chenjiawei.po.User;

public interface UserService {
    
    /**
     * 登录系统的操作方法
     * 传入username 用户名
     * password 密码
     * 返回 boolean 
     * true 为登录成功
     * false 为登录失败
     */
    public boolean doLogin(String username,String password);
    
    /**
     * 判断用户是否已存在
     * 传入参数  username 用户名
     * 返回值 boolean true为用户名已存在,false为用户名不存在
     */
    public boolean isSameUsername(String username);
    
    /**
     * 判断用户注册是否成功
     * 传入参数:user 用户类
     * 返回boolean 若为true注册成功,若为false注册失败
     */
    public boolean doRegiest(User user);
    
    /**
     * 判断身份证是否已存在
     * 传入参数:要查询的身份证信息
     * 返回boolean true为已存在,false不存在
     */
    public boolean isSameIdCard(String idCard);

}

 

 

 

 

  (5)在com.chenjiawei.service.impl包下的类文件

    1)UserServiceImpl

      

package com.chenjiawei.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.chenjiawei.mapper.UserMapper;
import com.chenjiawei.po.User;
import com.chenjiawei.service.UserService;


@Service
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper um;
    
    /**
     * 登录系统的操作方法
     * 传入username 用户名
     * password 密码
     * 返回 boolean 
     * true 为登录成功
     * false 为登录失败
     */
    @Override
    public boolean doLogin(String username, String password) {
        
        if(!username.trim().equals("") && username !=null 
                && !password.trim().equals("") && password !=null){
            User user=new User();
            user.setUsername(username);
            user.setPassword(password);
            User user1=um.findUserByUsernameAndPassword(user);
            if(user1!=null){
                System.out.println(user1);
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }
    }

    /**
     * 判断用户是否已存在
     * 传入参数  username 用户名
     * 返回值 boolean true为用户名已存在,false为用户名不存在
     */
    @Override
    public boolean isSameUsername(String username) {
        User user=um.findUserByUsername(username);
        if(user !=null){
            return true;
        }else{
            return false;
        }
        
    }
    
    /**
     * 判断用户注册是否成功
     * 传入参数:user 用户类
     * 返回boolean 若为true注册成功,若为false注册失败
     */
    @Override
    public boolean doRegiest(User user) {
        if(user !=null){
            int i=um.insertUser(user);
            if(i>0){
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }
        
    }
    
    
    /**
     * 判断身份证是否已存在
     * 传入参数:要查询的身份证信息
     * 返回boolean true为已存在,false不存在
     */
    @Override
    public boolean isSameIdCard(String idCard) {
        
        User user=um.findUserByIdCard(idCard);
        if(user ==null){
            return false;
        }else{
            return true;
        }
    }

}

 

  (6)在com.chenjiawei.test包下的文件

  MyTest该类是启动程序的主类 

package com.chenjiawei.test;

import com.chenjiawei.frame.LoginFrame;

public class MyTest {

    public static void main(String[] args) {
        new LoginFrame();
    }

}

 

 

  (7)spring的配置文件applicationContext.xml

    

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    
    xmlns:context="http://www.springframework.org/schema/context"
    
    xmlns:tx="http://www.springframework.org/schema/tx"
    
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        ">
        
        <context:property-placeholder location="db.properties"/>
        
        <!-- 定于数据源 -->
        
        <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
            <property name="driverClassName" value="${jdbc.driver}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />   
        </bean>
        
        <!-- 创建sqlSessionFactory -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">   
            <property name="dataSource" ref="dataSource" />
            
            <property name="configLocation" value="mybatis-config.xml" />
        </bean>
        
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.chenjiawei.mapper"/>
        </bean>
        
        <context:component-scan base-package="com.chenjiawei.service" />
        
        
</beans>

  (8)数据库连接池属性配置db.properties

 

    

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_mybatis_test
jdbc.username=root
jdbc.password=123456

 

  (9)mybatis日志文件

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.chenjiawei=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

  (10)mybaits的配置文件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>
          
          <!--开启别名  -->
          <typeAliases>
              <package name="com.chenjiawei.po"/>
          </typeAliases>
  
  
  </configuration>
  

以上是笔者开发结合spring和mybatis开发的简单程序,笔者知识有限,

posted on 2018-06-07 20:03  勿忘丶心安  阅读(464)  评论(4编辑  收藏  举报