首页 > 代码库 > 短学期小结1
短学期小结1
连接数据库并使用JAVA语言实现 增 删 改 查,具体代码如下:
接口类UserinfoDao代码
package cn.neusoft.mybatis.dao;
import java.util.List;
import cn.neusoft.mybatis.pojo.Userinfo;
public interface UserinfoDao {
//插入用户信息的插入 Userinfo 实体类可以携带 用户信息
public boolean addUser(Userinfo userinfo);
//根据 用户姓名 修改 用户密码
public boolean updateUser(Userinfo userinfo);
//根据 用户姓名 删除 用户信息
public boolean deleteUser(String username);
//查询所有用户信息
public List<Userinfo> findAll();
//根据用户名查询 个人信息 ,根据实际情况一个用户名只会查到一个用户,所以只能查到记录,所以不用list
public Userinfo getuser(String username);
public Userinfo findByUsername(String username);
//选做 实现如下分页查询方法
//select * from userinfo limit pageSize(pageNo-1),pageSize;
public List<Userinfo> findByPage(int pageSize,int pageNo);
}
方法类UserinfoDaoImpl代码:
package cn.neusoft.mybatis.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import cn.neusoft.mybatis.jdbc.Dbutils;
import cn.neusoft.mybatis.pojo.Userinfo;
public class UserinfoDaoImpl implements UserinfoDao {
@Override
public boolean addUser(Userinfo userinfo) {
//读取Userinfo 实体类的信息,然后把信息插入到数据库
//1.编写sql 语句
String sql = "insert into userinfo (username,pwd) values (?,?)";
//2.如果sql 语句中有问号,我们需要对应信息
//obj 对象中 userinfo.getUsername()在本方法对应第一个问号
// userinfo.getPwd()在本方法对应第二个问号
Object[] obj = new Object[]{userinfo.getUsername(),
userinfo.getPwd()};
//3.把sql 语句 以及 obj 对象 放入Dbutils 的executeUpdate方法中进行执行
//注意 ,Dbutils 的executeUpdate方法类型是int 类型的,只能使用int类型接收
int a = Dbutils.executeUpdate(sql, obj);
if(0!=a){//如果insert 操作能执行,那么a 的值就不会是0,那么我们认为操作成功,返回true
return true;
}
return false;
}
@Override
public boolean updateUser(Userinfo userinfo) {
// TODO Auto-generated method stub
String sql = "update userinfo set pwd=‘"+userinfo.getPwd()+
"‘ where username=‘"+userinfo.getUsername()+"‘";
System.out.println(sql);
//由于以上sql文我们没有写? 所以呢 不用使用Object[]对象作填充
int a = Dbutils.executeUpdate(sql, null);
if(0!=a){
return true;
}
return false;
}
@Override
public boolean deleteUser(String username) {
// TODO Auto-generated method stub
String sql = "delete from userinfo where username = ?";
Object[] obj = new Object[]{username};
int a = Dbutils.executeUpdate(sql, obj);
if(0!=a){
return true;
}
return false;
}
//查询所有用户信息 最终返回一个list 集合
@Override
public List<Userinfo> findAll() {
// TODO Auto-generated method stub
List<Userinfo> list = new ArrayList<Userinfo>();
String sql = "select * from userinfo";
//把sql 文 查询结果返回给 ResultSet 对象
ResultSet rs = Dbutils.executeQuery(sql, null);
try {
while(rs.next()){
//由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
//Userinfo
Userinfo userinfo = new Userinfo();
//把rs 对象中查询到的每一组信息放入Userinfo实体类中
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
userinfo.setPwd(rs.getString("pwd"));
list.add(userinfo);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
@Override
public Userinfo getuser(String username){
String sql="select * from userinfo where username=‘"+username+"‘";
ResultSet rs = Dbutils.executeQuery(sql, null);
Userinfo userinfo = new Userinfo();
//把rs 对象中查询到的每一组信息放入Userinfo实体类中
try {
if(rs.next()){
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
userinfo.setPwd(rs.getString("pwd"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userinfo;
}
@Override
public Userinfo findByUsername(String username) {
// TODO Auto-generated method stub
String sql="select * from userinfo where username=?";
Object[] obj = new Object[]{username};
ResultSet rs = Dbutils.executeQuery(sql, obj);
Userinfo userinfo = new Userinfo();
try {
while(rs.next()){
//由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
//Userinfo
//把rs 对象中查询到的每一组信息放入Userinfo实体类中
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
userinfo.setPwd(rs.getString("pwd"));
}
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userinfo;
}
@Override
public List<Userinfo> findByPage(int pageSize, int pageNo) {
List<Userinfo> list = new ArrayList<Userinfo>();
int i=pageSize*(pageNo-1);
String sql = "select * from userinfo limit ?,?";
//把sql 文 查询结果返回给 ResultSet 对象
Object[] obj = new Object[]{i,pageSize};
ResultSet rs = Dbutils.executeQuery(sql, obj);
try {
while(rs.next()){
//由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
//Userinfo
Userinfo userinfo = new Userinfo();
//把rs 对象中查询到的每一组信息放入Userinfo实体类中
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
userinfo.setPwd(rs.getString("pwd"));
list.add(userinfo);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
测试方法代码:
package cn.neusoft.mybatis.test;
import static org.junit.Assert.*;
import java.util.List;
import org.junit.Test;
import cn.neusoft.mybatis.dao.UserinfoDao;
import cn.neusoft.mybatis.dao.UserinfoDaoImpl;
import cn.neusoft.mybatis.pojo.Userinfo;
public class UserinfoDaoImplTest {
private UserinfoDao userinfoDao = new UserinfoDaoImpl();
/*@Test
public void testAddUser() {
//将类加载
UserinfoDao dao = new UserinfoDaoImpl();
//将 网页上获取的信息 放入 Userinfo 实体类
Userinfo userinfo = new Userinfo("moucong", "123");
boolean b = dao.addUser(userinfo);
if(b){
System.out.println("注册成功!");
}else{
System.out.println("注册失败!");
}
}
@Test
public void testUpdateUser(){
UserinfoDao dao = new UserinfoDaoImpl();
Userinfo userinfo = new Userinfo("moucong", "0627");
boolean b = dao.updateUser(userinfo);
if(b){
System.out.println("更新成功!");
}else{
System.out.println("更新失败!");
}
}
@Test
public void testDeleteUser(){
boolean b = userinfoDao.deleteUser("moucong");
System.out.println(b);
}
@Test
public void findAll(){
List<Userinfo> list = userinfoDao.findAll();
//打印list 第一个位置的 那一组数据中的 用户名
System.out.println(list.get(0).getUsername());
//循环的方式,打印所有用户信息
for(int i =0;i<list.size();i++){
System.out.println("~~~~~~~~~~~~~~~~~~~~");
System.out.println("用户编号:"+list.get(i).getUserid());
System.out.println("用户姓名:"+list.get(i).getUsername());
System.out.println("用户密码:"+list.get(i).getPwd());
}
}
@Test
public void getuser(){
Userinfo list = userinfoDao.getuser("moucong");
System.out.println("用户编号:"+list.getUserid());
System.out.println("用户姓名:"+list.getUsername());
System.out.println("用户密码:"+list.getPwd());
}*/
@Test
public void findByPage(){
List<Userinfo> list=userinfoDao.findByPage(2, 2);
for(int i =0;i<list.size();i++){
System.out.println("~~~~~~~~~~~~~~~~~~~~");
System.out.println("用户编号:"+list.get(i).getUserid());
System.out.println("用户姓名:"+list.get(i).getUsername());
System.out.println("用户密码:"+list.get(i).getPwd());
}
}
}
短学期小结1