JSP+Servlet实现前端展现数据库中的数据
学了很长时间的JSP和Servlet,虽然还是没有完全的理解其中的原理,但是总会⼀点点的技术,这次,就来实现把数据库中的数据在前端展⽰出来。
⼀、需求
实现数据库中的数据展现在前端界⾯
⼆、设计
技术选型:Servlet JSP Mysql JDBC Druid BeanUtil Tomcat
数据库设计:这是我第⼀次做这个⼩⼩的案例,所以就设计⼀张物品表
id name value 三个字段,id是主键,这张的表中的值事先都是添加好的,直接使⽤即可
具体的设计思路如下:
画了⼀⼩会的思路图⽚,虽然不好看,但是思路很清晰,接着就是根据设计思路,写代码啦!
三、开发
环境搭建:创建数据库环境,创建项⽬导⼊jar包
编码如下:
导⼊的jar包:
⽂件的⽬录结构:
这样⼀切都准备就绪了,那我们从哪开始写代码呢?
⽬前我是从dao层开始,不知道你们从哪开始?
⾸先写dao层:
在写dao层之前,应该先写连接数据库的⼯具类和⼀些配置⽂件:
DruidUtil类;
package util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
/**
* druid数据库连接池的⼯具类
*/
public class DruidUtil {
private static DataSource ds;
static {
//加载配置⽂件和建⽴连接池
try {
Properties pro = new Properties();
InputStream resourceAsStream = ClassLoader().getResourceAsStream("Druid.properties"); pro.load(resourceAsStream);
ds = ateDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接池
* 获取数据库连接池
* @return
*/
public static DataSource getDataSource(){
return ds;
}
/**
* 获取连接池中的⼀个连接
* @return
* @throws SQLException
*/
public Connection getconnection() throws SQLException {
Connection();
}
/**
* 关闭数据库的资源三个对象都存在时
* @param conn
* @param res
* @param pstmt
*/
public static void close(Connection conn, ResultSet res, PreparedStatement pstmt){ if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (res!=null){
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭数据库的连接(只存在Connection和PreparedStatement对象时)
* @param conn
* @param pstmt
*/
public void close(Connection conn,PreparedStatement pstmt){
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Druid.properties
driverClassName = sql.cj.jdbc.Driver
url=jdbc:mysql:///student?serverTimezone=GMT&useSSL=false username=root
password=yanzhiguo140710
#初始化连接数量#
initialSize = 5
#最⼤连接数量
jsp用什么前端框架maxACtive = 10
#等待时间 3秒
maxWait = 3000
写完之后,就可以写dao层的代码了:
⾸先写UserDao接⼝,然后写UserDaoImpl的实现类UesrDao接⼝:
package dao;
import domain.Users;
import java.util.List;
public interface UsersDao {
public List<Users> findAll();
}
UserDaoImpl实现类:
package dao.impl;
import dao.UsersDao;
import domain.Users;
import org.BeanPropertyRowMapper;
import org.JdbcTemplate;
import util.DruidUtil;
import java.util.List;
/**
* dao层操纵数据库
* 从数据库中拿出数据传给servive层
*/
public class UsersDaoImpl implements UsersDao {
private JdbcTemplate template = new DataSource());
@Override
public List<Users> findAll() {
String sql = "select * from goods";
List<Users> query = template.query(sql, new BeanPropertyRowMapper<Users>(Users.class)); return query;
}
}
这样就写完了dao层的代码
对了没还有⼀个重要的Javabean还没写:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论