zoukankan      html  css  js  c++  java
  • 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开发的简单程序,笔者知识有限,

    勿忘丶心安
  • 相关阅读:
    数据库MySQL技术-基础知识
    NC文件的处理【netcdf】
    设计模式-策略模式---Strategy(对象行为型)
    final修饰的变量是引用不能改变,还是引用的对象不能改变
    Spring之配置文件加载方式
    hibernate的基础学习--多表关联数据查询
    hibernate的基础学习--多对多关联
    hibernate的基础学习--一对一关联
    hibernate的基础学习--一对多关联
    hibernate的基础学习
  • 原文地址:https://www.cnblogs.com/linchen1300/p/9152534.html
Copyright © 2011-2022 走看看