一、知识点概括
1.JDBC
2.HTML
二、例题
1.JDBC
通过Apache的DbUtils实现数据库的增删改查
(1)database.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8
username=root
password=741147
#初始化连接
initialSize=10
#最大连接数量
maxActive=30
#最小空闲连接
minIdle=5
#超时等待时间以毫秒为单位
maxWait=5000
(2)User
public class User {
private int id;
private String username;
private String password;
private String sex;
private String email;
private String address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
", address='" + address + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public User() {
}
public User(int id, String username, String password, String sex, String email, String address) {
this.id = id;
this.username = username;
this.password = password;
this.sex = sex;
this.email = email;
this.address = address;
}
}
(3)DBUtils
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* 连接池工具类
*/
public class DBUtils {
private static DruidDataSource dataSource;
static {
Properties properties = new Properties();
InputStream is = DBUtils.class.getResourceAsStream("/database.properties");
try {
properties.load(is);
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
// 返回一个数据源
public static DataSource getDataSource(){
return dataSource;
}
}
(4)UserDao接口
import com.project.entity.User;
import java.util.List;
public interface UserDao {
public int insert(User user);
public int update(User user);
public int delete(int id);
public User select(int id);
public List<User> selectAll();
public long selectCount();
}
UserDaoImpl实现类
import com.project.dao.UserDao;
import com.project.entity.User;
import com.project.utils.DBUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import java.sql.SQLException;
import java.util.List;
public class UserDaoImpl implements UserDao {
//1.创建QueryRunner对象,并传递一个数据源对象
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
@Override
public int insert(User user) {
Object[] params={user.getId(),user.getUsername(),user.getPassword(),user.getSex(),user.getEmail(),user.getAddress()};
try {
return queryRunner.update("insert into user (id,username,password,sex,email,address) values(?,?,?,?,?,?)",params);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public int update(User user) {
Object[] params={user.getUsername(),user.getPassword(),user.getSex(),user.getEmail(),user.getAddress(),user.getId()};
try {
return queryRunner.update("update user set username=?,password=?,sex=?,email=?,address=? where id = ?",params);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public int delete(int id) {
try {
return queryRunner.update("delete from user where id = ?",id);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public User select(int id) {
try {
//把查询到的记录封装成 指定对象
return queryRunner.query("select * from user where id = ?", new BeanHandler<User>(User.class), id);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 查询所有
* @return
*/
@Override
public List<User> selectAll() {
try {
return queryRunner.query("select * from user;",new BeanListHandler<User>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 统计当前表中有多少条数据
* count(*)
* @return
*/
@Override
public long selectCount() {
try {
return queryRunner.query("select count(*) from user;", new ScalarHandler<>());
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
}
(5)UserSerivce接口
import com.project.entity.User;
import java.util.List;
public interface UserSerivce {
int add(User user);
int delete(int id);
int update(User user);
User select(int id);
List<User> selectAll();
long selectCount();
}
UserServiceImpl实现类
import com.project.dao.UserDao;
import com.project.dao.impl.UserDaoImpl;
import com.project.entity.User;
import com.project.service.UserSerivce;
import java.util.List;
public class UserServiceImpl implements UserSerivce {
UserDao userDao = new UserDaoImpl();
@Override
public int add(User user) {
return userDao.insert(user);
}
@Override
public int delete(int id){
return userDao.delete(id);
}
@Override
public int update(User user) {
return userDao.update(user);
}
@Override
public User select(int id) {
return userDao.select(id);
}
@Override
public List<User> selectAll() {
return userDao.selectAll();
}
@Override
public long selectCount() {
return userDao.selectCount();
}
}
2.HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>综合案例</title>
</head>
<body>
<div>
<table width="100%" align="center">
<tr>
<td align="left">
千锋教育-稀有的坚持全程面授品质的大型IT教育机构
</td>
<td align="right">
<a>好程序员特训营 </a>
<a>JavaEE分布式开发 </a>
<a>JavaSE核心基础 </a>
<a>加入我们 </a>
</td>
</tr>
<tr>
<td >
<img src="img/new_logo.png" >
</td>
<td align="right">
<img src="img/nav_r_ico.png" >
</td>
</tr>
<tr align="center">
<td colspan="2">
<hr/>
<span>首页 </span>
<span>课程培训 </span>
<span>教学保障 </span>
<span>免费视频 </span>
<span>公开课 </span>
<span>企业合作 </span>
<span>就业报喜 </span>
<span>学员天地 </span>
<span>关于千锋 </span>
<span>加入我们 </span>
<hr/>
</td>
</tr>
<tr >
<td colspan="2" align="right">
首页>课程培训>JavaEE列表
</td>
</tr>
<tr>
<td align="left">
<h3>课程培训</h3>
<h4>共108种课程内容</h4>
</td>
</tr>
<tr>
<td align="center" width="100%" colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="center" colspan="2">
<img src="img/001.png" width="100%">
</td>
</tr>
</table>
</div>
<div>
<table width="100%" cellspacing="40px" align="center">
<tr>
<td>
<img src="img/002.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/003.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/004.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/005.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/006.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
</tr>
<tr>
<td>
<img src="img/007.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/008.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/009.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/010.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
<td>
<img src="img/011.png">
<div align="center">书名:XXX</div>
<div align="center">售价:180</div>
</td>
</tr>
<tr>
<td align="center" colspan="5">
<img src="img/012.png" width="100%">
</td>
</tr>
</table>
</div>
</body>
</html>