使用maven构建多模块项目(三)

来源:互联网 发布:淘宝商城包包大全 编辑:程序博客网 时间:2024/05/17 06:31
  1. 完善helloweb-entity模块
  2. 完善helloweb-core模块
  3. 完善helloweb-web模块
  4. 运行

1. 完善helloweb-entity模块
(1)创建数据表

CREATE TABLE `tbl_user` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `name` varchar(50) NOT NULL,  `password` varchar(50) NOT NULL,  `email` varchar(50) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

插入一条数据

insert into tbl_user(name, password, email) values ('Tom', '123456','Tom@qq.com');

(2)创建实体类User

package com.jikexueyuan.entity;public class User {    private long id;    private String name;    private String password;    private String email;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}

2. 完善helloweb-core模块
(1)新建一个resources文件夹,在main下,右击,Build Path, Use as Source Folder

新建dbconfig.properties

driver=com.mysql.jdbc.Driverdburl=jdbc:mysql://localhost:3306/ssmuser=rootpassword=root

(2)新建一个类ConnectionFactory

package com.jikexueyuan.util;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;public class ConnectionFactory {    private static String driver;    private static String dburl;    private static String user;    private static String password;    private static final ConnectionFactory factory = new ConnectionFactory();    private Connection conn;    static{        Properties prop = new Properties();        try {            InputStream is = ConnectionFactory.class.getClassLoader().getResourceAsStream("dbconfig.properties");            prop.load(is);        } catch (Exception e) {            System.out.println("获取数据库配置文件错误"+e.getMessage());        }        driver = prop.getProperty("driver");        dburl = prop.getProperty("dburl");        user = prop.getProperty("user");        password = prop.getProperty("password");    }    //测试    private ConnectionFactory(){    }    //单例模式    public static ConnectionFactory getInstance(){        return factory;    }    //定义一个用于获取连接的方法    public Connection makeConnection(){        try {            Class.forName(driver);            conn = DriverManager.getConnection(dburl, user, password);        } catch (Exception e) {            e.printStackTrace();        }        return conn;    }    //测试    public static void main(String[] args) throws SQLException {        Connection conn = ConnectionFactory.getInstance().makeConnection();        System.out.println(conn.getAutoCommit());       }}

(3)发现缺少mysql驱动,在helloweb-core——>pom.xml中添加,复制helloweb-parent下pom.xml中的mysql驱动的dependency,删除version

(4)运行ConnectionFactory进行测试
(5)在com.jikexueyuan.dao下创建类UserDao

package com.jikexueyuan.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import com.jikexueyuan.entity.User;public interface UserDao {    public void save(Connection conn, User user) throws SQLException;    public void update(Connection conn, Long id, User user) throws SQLException;    public void delete(Connection conn, User user) throws SQLException;    public ResultSet get(Connection conn, User user) throws SQLException;}

(6)在com.jikexueyuan.dao.impl下创建类UserDaoImpl

package com.jikexueyuan.dao.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.jikexueyuan.dao.UserDao;import com.jikexueyuan.entity.User;public class UserDaoImpl implements UserDao{    @Override    public void save(Connection conn, User user) throws SQLException {        PreparedStatement ps = conn.prepareCall("INSERT INTO tbl_user(NAME, PASSWORD, EMAIL) VALUES (?,?,?)");        ps.setString(1, user.getName());        ps.setString(2, user.getPassword());        ps.setString(3, user.getEmail());        ps.execute();           }    @Override    public void update(Connection conn, Long id, User user) throws SQLException {        String updateSql = "update tbl_user set name = ?, password = ?, email = ? where id = ?";        PreparedStatement ps = conn.prepareStatement(updateSql);        ps.setString(1, user.getName());        ps.setString(2, user.getPassword());        ps.setString(3, user.getEmail());        ps.setLong(4, id);        ps.execute();       }    @Override    public void delete(Connection conn, User user) throws SQLException {        PreparedStatement ps = conn.prepareStatement("delete from tbl_user where id = ?");        ps.setLong(1, user.getId());        ps.execute();       }    @Override    public ResultSet get(Connection conn, User user) throws SQLException {        PreparedStatement ps = conn.prepareStatement("select * from tbl_user where name = ? and password =?");        ps.setString(1, user.getName());        ps.setString(2, user.getPassword());            return ps.executeQuery();    }}

(7)在com.jikexueyuan.service下创建类CheckUserService

package com.jikexueyuan.service;import java.sql.Connection;import java.sql.ResultSet;import com.jikexueyuan.dao.UserDao;import com.jikexueyuan.dao.impl.UserDaoImpl;import com.jikexueyuan.entity.User;import com.jikexueyuan.util.ConnectionFactory;public class CheckUserService {    private UserDao userDao = new UserDaoImpl();    public boolean check(User user){        Connection conn = null;        try{            conn = ConnectionFactory.getInstance().makeConnection();            conn.setAutoCommit(false);            ResultSet resultSet = userDao.get(conn, user);            while(resultSet.next()){                return true;            }        }catch(Exception e){            e.printStackTrace();            try {                conn.rollback();            } catch (Exception e2) {                e2.printStackTrace();            }        }finally {            try{                conn.close();            }catch (Exception e) {                e.printStackTrace();            }        }        return false;    }}

(8)需要添加helloweb-entity包下的User依赖,内容如下:

<dependency>         <groupId>com.moss</groupId>         <artifactId>helloweb-entity</artifactId>         <version>1.0</version>         <scope>compile</scope>      </dependency>

(9)打包项目maven install

3. 完善helloweb-web模块
(1)在com.jikexueyuan.action包下创建CheckAction类

package com.jikexueyuan.action;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jikexueyuan.entity.User;import com.jikexueyuan.service.CheckUserService;public class CheckUserAction extends HttpServlet{    private CheckUserService cku = new CheckUserService();    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        doGet(req, resp);    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        String uname = req.getParameter("uname");        String password = req.getParameter("upwd");        RequestDispatcher rd = null;        String forword = null;        if(uname==null || password==null){            req.setAttribute("msg","用户名或密码为空");            rd = req.getRequestDispatcher("error.jsp");            rd.forward(req, resp);        }else{            User user = new User();            user.setName(uname);            user.setPassword(password);            boolean bool = cku.check(user);            if(bool){                forword = "success.jsp";            }else{                req.setAttribute("msg", "用户名或密码错误,请重新输入");                forword = "error.jsp";            }            rd = req.getRequestDispatcher(forword);            rd.forward(req, resp);        }           }}


4. 运行

run.png

点击上图红色框框中的倒三角,选择Run Configurations——>maven build——>new,填写下面信息:
1)Base directory——>Browse Workspace——>选择helloweb-web
2)Goals:tomcat:run
3 )Name:run_helloweb(可改可不改)
4)Apply
5 )Run
Tomcat启动完毕

原创粉丝点击