package com.xlh.vo;
public class User {
private int userno;
private String userName;
private String password;
private String realName;
public int getUserno() {
return userno;
}
public void setUserno(int userno) {
this.userno = userno;
}
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 getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
@Override
public String toString() {
return "User [userno=" + userno + ", userName=" + userName + ", password="
+ password + ", realName=" + realName + "]";
}
public User(int userno, String userName, String password, String realName) {
super();
this.userno = userno;
this.userName = userName;
this.password = password;
this.realName = realName;
}
public User() {
super();
}
public User(String userName, String password, String realName) {
super();
this.userName = userName;
this.password = password;
this.realName = realName;
}
}
package com.xlh.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class BaseDao {
private static final String URL="jdbc:mysql://localhost:3306/boooks";
private static final String USERNAME="root";
private static final String PASSWORD="tiger";
//加载驱动
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected Connection getConnection(){
Connection conn=null;
try {
conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
protected void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
protected void close(Connection conn,Statement ps){
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void close(Connection conn,Statement ps,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.close(conn, ps);
}
//执行任何sql语句,不建议执行查询
//sql:要执行的sql语句,可以传递预编译的sql
//object:传递的参数
public void executeSql(String sql,Object...objs){
this.executedDML(sql, objs);
}
public void executedDML(String sql,Object[]objs){
Connection conn=this.getConnection();
PreparedStatement ps=null;
try{
ps=conn.prepareStatement(sql);
//赋值
if(objs!=null){
for(int i=0;i<objs.length;i++){
ps.setObject(i+1, objs[i]);
}
}
ps.execute();
}catch(Exception e){
e.printStackTrace();
}finally{
this.close(conn,ps);
}
}
public List<Object[]> executeQuery(String sql,Object...objs){
Connection conn=this.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
List<Object[]>list=new ArrayList<Object[]>();
try{
ps=conn.prepareStatement(sql);
if(objs!=null){
for(int i=0;i<objs.length;i++){
ps.setObject(i+1, objs[i]);
}
}
rs=ps.executeQuery();
//将resultSet转换成List<Object[]>
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next()){
Object[]obj=new Object[rsmd.getColumnCount()];
for(int i=0;i<=obj.length;i++){
obj[i]=rs.getObject(i+1);
}
list.add(obj);
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.close(conn,ps,rs);
}
return list;
}
}
package com.xlh.dao;
import java.util.List;
import com.xlh.vo.User;
public interface UserDao {
public void insert(User user);
public void update(User user);
public void delete(int userno);
public void delete(Integer[] userno);
public List<User> getAll();
}
package com.xlh.dao.impl;
import java.util.ArrayList;
import java.util.List;
import com.xlh.dao.BaseDao;
import com.xlh.dao.UserDao;
import com.xlh.vo.User;
public class UserDaoImpl extends BaseDao implements UserDao {
@Override
public void insert(User user) {
String sql="insert into tb_user values(null,?,?,?)";
this.executeSql(sql, user.getUserName(),user.getPassword(),user.getRealName());
}
@Override
public void update(User user) {
this.executeSql("update tb_user set userName=?,password=?,realName=? where userno=?",user.getUserName(),user.getPassword(),user.getRealName(),user.getUserno());
}
@Override
public void delete(int userno) {
this.executeSql("delete from tb_user where userno=?", userno);
}
//批量删除多个用户
@Override
public void delete(Integer[] userno) {
//拼装sql语句;
StringBuffer sql=new StringBuffer("delete from tb_user where userno in(");
for(int i=0;i<userno.length;i++){
if(i==(userno.length-1)){
sql.append("?)");
}else{
sql.append("?,");}
}
System.out.println(sql);
this.executedDML(sql.toString(),userno );
}
@Override
public List<User> getAll() {
List<Object[]>olist=this.executeQuery("select * from tb_user");
List<User>list=new ArrayList<User>();
for(Object[]obj:olist){
User user=new User();
user.setUserno((Integer)obj[0]);
user.setUserName((String)obj[1]);
user.setPassword((String)obj[2]);
user.setRealName((String)obj[3]);
list.add(user);
}
return list;
}
}
package com.xlh.text;
import java.util.List;
import com.xlh.dao.UserDao;
import com.xlh.dao.impl.UserDaoImpl;
import com.xlh.vo.User;
public class TestUser {
public static void main(String[] args) {
UserDao dao=new UserDaoImpl();
//User user=new User(3,"lla","125345","对不对");
// dao.insert(user);
// dao.delete(11);
//dao.update(user);
// dao.delete(new Integer[]{5,7});
List<User>list=dao.getAll();
for(User u:list){
System.out.println(u);
}
}
}