準備工做post
1新建po類:User
private int id;set,get方法省略
private String name;
private String pwd;
2 新建UserDao類,存放增刪改查的相關方法,而且定義連接數據庫的相關性信息(連接地址,用戶名,密碼);
public class UserDao {
private static String jdbcDriver = "com.mysql.jdbc.Driver";
private static String jdbcUrl="jdbc:mysql://localhost:3306/homework";
private static String jdbcuser="root";
private static String jdbcpwd="123";
public boolean ChaRu(User user){ //插入數據
boolean flag=true;
return flag;
}
public boolean XiuGai(User user){ //修改數據
boolean flag=true;
return flag;
}
public boolean ShanChu(int id){ //刪除數據
boolean flag=true;
return flag;
}
public List<User> ChanZhao(){ // 查找數據
List<User> list= new ArrayList<User>();
return list;
}
}
3 在數據庫中建立表user,表中設置,id int
name varchar(20)
pwd varchar(20)
1 插入數據
在進行增刪改查操做結束以後,必定要關閉conn,st,rs(僅查找時用到此對象)對象。
public boolean ChaRu(User user){
boolean flag=true;
Connection conn= null;
Statement st=null;
String sql="insert into user(name,pwd) values('"+user.getName()+"','"+user.getPwd()+"')"; //插入數據的SQL語句
try {
Class.forName(jdbcDriver); // 加載驅動器
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd); // 驅動利用驅動地址,數據庫用戶名,密碼建立鏈接
st=conn.createStatement(); // 鏈接建立數據庫操做對象,Statement是執行數據庫的重要方法
int i=st.executeUpdate(sql); // Statement 對象利用executeUpdate()方法執行sql。
if(i==0){
flag=false; // 後面測試用到flag變量,前面執行sql語句,若是成功i不爲0,true表明執行成功,false表明失敗。
}
} catch (ClassNotFoundException e) { //加載驅動器失敗異常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) { //建立連接失敗異常
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){ // 最後關閉鏈接
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){ //關閉Statement
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return flag; // 返回flag
}
public static void main(String[] args) {
User user=new User(); //初始化 User類 對象user能夠調用set,get方法設置或者得到數據。
UserDao userDao = new UserDao(); //初始化UserDao 類,能夠調用增刪改差的各類方法。
user.setName("lbzz"); // 設置姓名
user.setPwd("123"); // 設置密碼
boolean flag=userDao.ChaRu(user); //執行插入操做,返回值賦給flag
if(flag){ //根據flag判斷執行是否成功。
System.out.println("插入成功");
}else{
System.out.println("插入失敗");
}
}
2 修改數據
public boolean XiuGai(User user){
boolean flag=true;
Connection conn= null;
Statement st= null;
String sql= "update user set pwd='"+user.getPwd()+"' where name='"+user.getName()+"'";
System.out.println(sql);
try {
Class.forName(jdbcDriver);
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return flag;
}
測試
public static void main(String[] args) {
User user= new User();
UserDao userDao= new UserDao();
user.setName("lbzz");
user.setPwd("lbzz");
boolean flag=userDao.XiuGai(user);
if(flag){
System.out.println("修改爲功");
}else{
System.out.println("修改失敗");
}
}
3 刪除記錄
public boolean ShanChu(int id){
boolean flag=true;
Connection conn= null;
Statement st= null;
String sql="delete from user where id="+id;
try {
Class.forName(jdbcDriver);
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return flag;
}
測試
public static void main(String[] args) {
UserDao userDao = new UserDao();
boolean flag= userDao.ShanChu(1);
if(flag){
System.out.println("刪除成功");
}else{
System.out.println("刪除失敗");
}
}
4 查找數據
前面增刪改,程序除了sql語句不一樣外,其他相差無幾,查找與前三個程序略有不一樣。
public List<User> ChanZhao(){ // 查詢出來的數據不止一條,因此使用集合
List<User> list= new ArrayList<User>(); // 對集合進行初始化
Connection conn= null;
Statement st=null;
ResultSet rs=null; // ResultSet 返回的是一個結果集
String sql="select * from user";
try {
Class.forName(jdbcDriver);
conn= DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
rs=st.executeQuery(sql); // 查詢時使用 executeQuery()方法
while(rs.next()){ // 對結果集進行遍歷
User user = new User();
user.setName(rs.getString("name")); // 須要查詢什麼就要像這樣設置什麼
list.add(user); //添加到集合
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
關閉conn,st,rs
}
return list; //返回list
}
測試
public static void main(String[] args) {
UserDao userDao = new UserDao();
List<User> list=userDao.ChanZhao();
for(User user:list){
System.out.println(user.getName());
}
}