最简单的web项目登录编程
过了一假期,感觉自己又好久没写博客了,今天写一写
<?xml version="1.0" encoding="UTF-8" ?> <--!这个是数据库明细搜在的proprties配置文件,但本实例没有进行配置-->最简单的web项目就是分为几个阶段
一是导包,我们将所需要的包进行导入(后期使用maven进行导入,但是目前我不太会)
二是进行框架构建,分为dao层,vo层,service层和servlet层
在vo层里我们主要书写数据库的实力化对象,dao层我们进行数据查询,service层理我们进行业务处理,而servlet层进行的是获取前台数据和进行页面转发或返回前端数据(最重要的是书写mybatis的映射文件和数据库连接)
而我所用的包有
log4j是java的日志文件,它能将日志打印到控制台(但日志的代码过于繁杂,各位可以到百度随便搜一个就可以进行日志配置)
首先是vo层
(本数据库的设计是为了方便以后进行的开发,若只想进行登录的话,只需要empId,empNo和password即可)
下面的getter,setter,toString和构造方法不在细粘贴
进行mybatis数据库连接的xml
<settings>
<!-- 配置日志组件的类型 -->
<setting name="logImpl" value="LOG4J"/>
<setting name="useGeneratedKeys" value="true"/>
</settings>
<typeAliases>
<package name="com.oracle.vo"/>
<!-- 这是数据库实现类所在的包-->
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="poolMaximumActiveConnections" value="2"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 你需要将0126改为你数据表所在的数据库名称-->
<property name="url" value="jdbc:mysql://localhost:3306/0126"/>
<!--账号-->
<property name="username" value="root"/>
<!--密码-->
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--映射文件所在位置-->
<mapper resource="com/oracle/dao/EmpMapper.xml"/>
</mappers>
创建dao接口来进行数据库的映射
package com.oracle.dao;
import org.apache.ibatis.annotations.Param;
import com.oracle.vo.Emp;
public interface EmpDao {
public Emp getEmpByPwd(@Param(“empNo”) String empNo,@Param(“password”) String password);
}
@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
进行dao映射文件的编写
在servlet的doget方法里进行书写
最后使用service将数据库查询和servlet进行连接
package com.oracle.service;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.oracle.dao.EmpDao;
import com.oracle.dao.MybatisUtil;
import com.oracle.vo.*;
public class EmpService {
public Emp login(String empNo,String password) {
Emp emp=null;
try(SqlSession session=MybatisUtil.openSession()){
EmpDao dao=session.getMapper(EmpDao.class);
emp=dao.getEmpByPwd(empNo, password);
//登录成功后才可以进行其他业务;比如登录时间,次数,记录日志;
}
return emp;
}
}
而文件中的filter是过滤器, 不影响项目的进行(我所书写的filter主要是进行拦截,在未登录的情况下不可以进行下面的工作)
最后进行登录成功后的页面编写
忘记写了还有一个获取session的MybatisUtil
public class MybatisUtil {
static SqlSessionFactory factory=null;
static {
String resource="configuration.xml";
//读取核心配置文件的数据
InputStream inputStream = null;
try {
inputStream=Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//创建session工厂
factory=new SqlSessionFactoryBuilder().build(inputStream);
}
public static SqlSession openSession() {
return factory.openSession();
}
}