package cn.itsourc.test.dao;
import java.util.List;
import cn.itsourc.test.daomain.User;
/**
* 查询:基于id查询 查询所有
* 新增:新增数据
* 删除:基于id删除
* 修改:基于id修改数据
* @author Carroll
*
*/
public interface IUserDao {
/**
* 基于id查询user
* @param id
* @return
*/
User selectOne(Long id);
/**
* 查询所有user
* @return
*/
List<User> selectAll();
/**
* 添加user数据
* @param user
*/
void addOne(User user);
/**
* 通过id删除一条数据
* @param id
*/
void delete(Long id);
/**
* 修改数据
* @param user
*/
void update(User user);
}
package cn.itsourc.test.dao.daoimpl;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cn.itsourc.test.Util.JDBCUtil;
import cn.itsourc.test.dao.IUserDao;
import cn.itsourc.test.daomain.User;
public class UserDaoImpl implements IUserDao{
//根据id查找数据
@Override
public User selectOne(Long id) {
Connection conn = null;
Statement sta = null;
ResultSet result = null;
try {
//获取连接
conn = JDBCUtil.getConnection();
//创建语句对象
sta = conn.createStatement();
//编写sql语句
String sql = "SELECT * FROM user WHERE id = "+id;
//执行sql
result = sta.executeQuery(sql);
while(result.next()){
return new User(result.getLong("id"),result.getString("username"),result.getString("password"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.slose(conn, result, sta);
}
return null;
}
//查询全部
@Override
public List<User> selectAll() {
Connection conn = null;
Statement sta = null;
ResultSet result = null;
try {
//获取连接
conn = JDBCUtil.getConnection();
sta = conn.createStatement();
String sql = "SELECT * FROM user";
result = sta.executeQuery(sql);
List<User> users = new ArrayList<User>();
while(result.next()){
users.add(new User(result.getLong("id"),result.getString("username"),result.getString("password")));
}
return users;
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.slose(conn, result, sta);
}
return null;
}
//添加数据
@Override
public void addOne(User user) {
Connection conn = null;
Statement sta = null;
ResultSet result = null;
try {
//获取连接
conn = JDBCUtil.getConnection();
sta = conn.createStatement();
String sql = "INSERT INTO user (username,password) VALUES ('"+user.getUsername()+"','"+user.getPassword()+"')";
sta.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.slose(conn, result, sta);
}
}
/**
* 通过id删除一条数据
* @param id
*/
@Override
public void delete(Long id) {
Connection conn = null;
Statement sta = null;
ResultSet result = null;
try {
//获取连接
conn = JDBCUtil.getConnection();
//获取语句对象
sta = conn.createStatement();
//编写sql语句
String sql = "DELETE FROM user WHERE id = "+id;
//执行
sta.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.slose(conn, result, sta);
}
}
/**
* 测试修改一条数据
* @throws Exception
*/
@Override
public void update(User user) {
Connection conn = null;
Statement sta = null;
ResultSet result = null;
try {
//获取连接
conn = JDBCUtil.getConnection();
//获取语句对象
sta = conn.createStatement();
//编写sql语句
String sql = "UPDATE user SET username = '"+user.getUsername()+"', password = '"+user.getPassword()+"' WHERE id = "+user.getId();
//执行
sta.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.slose(conn, result, sta);
}
}
}
package cn.itsourc.test.daomain;
public class User {
private Long id;
private String username;
private String password;
public User() {
// TODO Auto-generated constructor stub
}
public User(Long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
测试
package cn.itsourc.test._01;
import static org.junit.Assert.*;
import java.util.List;
import org.junit.Test;
import cn.itsourc.test.dao.daoimpl.UserDaoImpl;
import cn.itsourc.test.daomain.User;
public class UserTest {
//查询全部
@Test
public void testName() throws Exception {
UserDaoImpl ud = new UserDaoImpl();
List<User> user = ud.selectAll();
user.forEach(System.out::println);
}
//根据id查询
@Test
public void test2() throws Exception {
UserDaoImpl ud = new UserDaoImpl();
User user = ud.selectOne(4L);
System.out.println(user);
}
//添加数据
@Test
public void test3() throws Exception {
UserDaoImpl ud = new UserDaoImpl();
ud.addOne(new User(null,"肖梓博","12233"));
}
//根据id删除数据
@Test
public void test4() throws Exception {
UserDaoImpl ud = new UserDaoImpl();
ud.delete(7L);
}
@Test
public void test5() throws Exception {
UserDaoImpl ud = new UserDaoImpl();
ud.update(new User(6L,"肖梓博","12233"));
}
}