栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP第十八课让你体验不一样的代码世界。用Java框架带你飞出自己写代码变的更加便捷。对数据的增删改查用几行代码弄定。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP第十八课让你体验不一样的代码世界。用Java框架带你飞出自己写代码变的更加便捷。对数据的增删改查用几行代码弄定。

第一部分到官网上去下载这些构架包。

 将你下的架构包导入进lib包下。

第二部分回顾mysql的基本语句:增删改查。
#增加一条数据
INSERT INTO `studentdb`.`book`(`name`, `maker`, `price`, `num`, `time`, `autor`) VALUES ('Sping', '中国邮政', '500元', 456, '2021/11/30', 'spingsping')
#查询表单结构
DESC book
#查询表的内容
SELECt * FROM book
#查询一条记录
SELECt *FROM book WHERe name='Sping'and maker='中国邮政'
#查询多个条件
#且 and
#或 or 
INSERT INTO `studentdb`.`book`(`name`, `maker`, `price`, `num`, `time`, `autor`) VALUES ('Sping', '中国邮政', '400元', 456, '2021/11/30', 'spingsping')
SELECt *FROM book WHERe price='400元'or price='500元'
#修改数据内容
UPDATe `studentdb`.`book` SET `maker` = 'kut' WHERe `id` = 1005
#修改大量内容
SELECT * FROM book
#创建一个数据
INSERT INTO `studentdb`.`book`(`name`, `maker`, `price`, `num`, `time`, `autor`) VALUES ('SpingBoot', '中国人名出版社', '300元', 356, '2021/12/30', 'spingbook')
#修改大量的数据内容
INSERT INTO `studentdb`.`book`(`id`, `name`, `maker`, `price`, `num`, `time`, `autor`) VALUES (NULL, 'jquery', 'sum', '123', 345, '2020/1/2', 'gh')

UPDATe `studentdb`.`book` SET `name` = 'html', `maker` = 'sumdt', `price` = '678', `num` = 340, `time` = '2021/1/2', `autor` = 'ghj' WHERe `id` = 1008
#删除表的数据
DELETE FROM `studentdb`.book WHERe ` id` = 1007

DELETe FROM `studentdb`.`book` WHERe `id` = 1004

-- 练习题

#增一条语句
INSERT INTO `studentdb`.`book`(`id`, `name`, `maker`, `price`, `num`, `time`, `autor`) VALUES (1013, 'Html5', 'hellowhtml5', '200元', 678, '2020/1/2', '你哈')
#改一条语句的多个条件
UPDATe `studentdb`.`book` SET `name` = 'php', `maker` = 'as', `price` = '344元', `num` = 2334, `time` = '2021/2/4', `autor` = 'nees' WHERe `id` = 10014 AND `name` = Cast('ps' AS Binary(2))
#查表的结构
DESC book
DESC tb_student
#查表的内容
SELECT * FROM book
#删除语句
INSERT INTO `studentdb`.`book`(`id`, `name`, `maker`, `price`, `num`, `time`, `autor`) VALUES (1015, 'Html5', 'maysquery', '210元', 678, '2020/11/30', '增加的一条语句')

#删除上面增加的语句

DELETe FROM `studentdb`.`book` WHERe `id` = 1015 AND `name` = Cast('Html5' AS Binary(5))


UPDATe `studentdb`.`book` SET `maker` = '', `price` = '' WHERe `id` = 10014 AND `name` = Cast('php' AS Binary(3))



第一个构架包:junit-4.13.2.

传统的方式写程序入口
package com.db.text;

import org.junit.Test;

public class Hellow2 {
	
	@Test
	
	public void test1() {
		System.out.println("Hellow javav nees mee to");
	}
	
	@Test
	public void test2() {
		System.out.println("Hellow javav nees mee to2");
	}
	
	@Test
	public void test3() {
		System.out.println("Hellow javav nees mee to3");
	}
	
	@Test
	public void test4() {
		System.out.println("Hellow javav nees mee to4");
	}
	

}
 在一个类中定义多个程序入口

 

第二个构架包:mysql-jdbc利用框架。利用一个框架写对数据的增删改查。
package com.db.text;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import org.junit.Test;

import com.sun.javafx.collections.MappingChange.Map;

import jdk.nashorn.internal.ir.CatchNode;

public class JDBCDemo {
	public Connection con =null;
	
	
	
	public void getconnection() {
	
		//第一步加载插件
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url= "jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
			String username="root";
			String password="123456";
			//使用设备管理器类根据提供的信息
			con=DriverManager.getConnection(url, username, password);
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//连接数据库的信息
			

	@Test
	public void test1() {
			System.out.println("这是我的第一个方法");
			//增加数据
			getconnection();
			//判断数据库是否为空
			if(con!=null) {
				//sql增加语句
				//在jdbc连接数据库
				//String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES ('hellows', 22)";
				String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES (?, ?)";
				//执行sql语句
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//替换符位置
					ps.setString(1, "胡滨");
					ps.setInt(2,34);
				int count=	ps.executeUpdate();
				if (count>0) {
					System.out.println("数据增加一条成功");
					
				}
				ps.close();
				System.out.println("数据库断开连接");
			
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			
			try {
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
			

package com.db.text;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import org.junit.Test;

import com.sun.javafx.collections.MappingChange.Map;

import jdk.nashorn.internal.ir.CatchNode;

public class JDBCDemo {
	public Connection con =null;
	
	
	
	public void getconnection() {
	
		//第一步加载插件
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url= "jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
			String username="root";
			String password="123456";
			//使用设备管理器类根据提供的信息
			con=DriverManager.getConnection(url, username, password);
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//连接数据库的信息

			
	
			
			@Test
			public void test2() {
				//修改数据
				getconnection();
				if(con!=null) {
					String sql="UPDATE `studentdb`.`tb_student` SET `age` = ? WHERe ` id` = ?";
					//执行sql语句
					try {
						PreparedStatement ps=con.prepareStatement(sql);
						//替换符位置
					ps.setInt(1, 25);
					ps.setInt(2, 1);
					int count=	ps.executeUpdate();
					if (count>0) {
						System.out.println("执行代码修改了一条数据");
						
					}	ps.close();
					System.out.println("数据库断开连接");
					
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			}

package com.db.text;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import org.junit.Test;

import com.sun.javafx.collections.MappingChange.Map;

import jdk.nashorn.internal.ir.CatchNode;

public class JDBCDemo {
	public Connection con =null;
	
	
	
	public void getconnection() {
	
		//第一步加载插件
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url= "jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
			String username="root";
			String password="123456";
			//使用设备管理器类根据提供的信息
			con=DriverManager.getConnection(url, username, password);
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//连接数据库的信息
			

	@Test
	public void test1() {
			System.out.println("这是我的第一个方法");
			//增加数据
			getconnection();
			//判断数据库是否为空
			if(con!=null) {
				//sql增加语句
				//在jdbc连接数据库
				//String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES ('hellows', 22)";
				String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES (?, ?)";
				//执行sql语句
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//替换符位置
					ps.setString(1, "胡滨");
					ps.setInt(2,34);
				int count=	ps.executeUpdate();
				if (count>0) {
					System.out.println("数据增加一条成功");
					
				}
				ps.close();
				System.out.println("数据库断开连接");
			
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			
			try {
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
			
	
			
			@Test
			public void test2() {
				//修改数据
				getconnection();
				if(con!=null) {
					String sql="UPDATE `studentdb`.`tb_student` SET `age` = ? WHERe ` id` = ?";
					//执行sql语句
					try {
						PreparedStatement ps=con.prepareStatement(sql);
						//替换符位置
					ps.setInt(1, 25);
					ps.setInt(2, 1);
					int count=	ps.executeUpdate();
					if (count>0) {
						System.out.println("执行代码修改了一条数据");
						
					}	ps.close();
					System.out.println("数据库断开连接");
					
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			}
				
			
		@Test
		public void test3() {
			getconnection();
			if(con!=null) {
				String sql="DELETE FROM `studentdb`.`tb_student` WHERe ` id` = ?";
				//执行sql语句
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//替换符位置
				ps.setInt(1,5);
				//表发生变化
				int i=	ps.executeUpdate();
				if (i>0) {
					System.out.println("执行代码删除了一条数据");
					
				}	ps.close();
				System.out.println("数据库断开连接");
				
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
				
		}
		

package com.db.text;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import org.junit.Test;

import com.sun.javafx.collections.MappingChange.Map;

import jdk.nashorn.internal.ir.CatchNode;

public class JDBCDemo {
	public Connection con =null;
	
	
	
	public void getconnection() {
	
		//第一步加载插件
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url= "jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
			String username="root";
			String password="123456";
			//使用设备管理器类根据提供的信息
			con=DriverManager.getConnection(url, username, password);
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//连接数据库的信息
			

	@Test
	public void test1() {
			System.out.println("这是我的第一个方法");
			//增加数据
			getconnection();
			//判断数据库是否为空
			if(con!=null) {
				//sql增加语句
				//在jdbc连接数据库
				//String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES ('hellows', 22)";
				String sql="INSERT INTO `studentdb`.`tb_student`(`name`, `age`) VALUES (?, ?)";
				//执行sql语句
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//替换符位置
					ps.setString(1, "胡滨");
					ps.setInt(2,34);
				int count=	ps.executeUpdate();
				if (count>0) {
					System.out.println("数据增加一条成功");
					
				}
				ps.close();
				System.out.println("数据库断开连接");
			
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			
			try {
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
			
	
			
			@Test
			public void test2() {
				//修改数据
				getconnection();
				if(con!=null) {
					String sql="UPDATE `studentdb`.`tb_student` SET `age` = ? WHERe ` id` = ?";
					//执行sql语句
					try {
						PreparedStatement ps=con.prepareStatement(sql);
						//替换符位置
					ps.setInt(1, 25);
					ps.setInt(2, 1);
					int count=	ps.executeUpdate();
					if (count>0) {
						System.out.println("执行代码修改了一条数据");
						
					}	ps.close();
					System.out.println("数据库断开连接");
					
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			}
				
			
		@Test
		public void test3() {
			getconnection();
			if(con!=null) {
				String sql="DELETE FROM `studentdb`.`tb_student` WHERe ` id` = ?";
				//执行sql语句
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//替换符位置
				ps.setInt(1,5);
				//表发生变化
				int i=	ps.executeUpdate();
				if (i>0) {
					System.out.println("执行代码删除了一条数据");
					
				}	ps.close();
				System.out.println("数据库断开连接");
				
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
				
		}
		
		

		
		@Test
		public void test4() {
			//查询语句
			//连接数据库
			getconnection();
			
			if(con!=null) {
				String sql="select *from tb_student where id=?";
				
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					//字符占位符
					ps.setInt(1, 1002);
					//结果的集合
				ResultSet rs =	ps.executeQuery();
				//第一步 移动游标,游标默认停在第一行,是字段名。
				//移动一行
				if (rs.next()) {
				int id=	rs.getInt(1);
				String name=rs.getString(2);
				int age=rs.getInt(3);
				//获取数据
				System.out.println(id+"-----"+name+"------"+age);
					}
				rs.close();
				ps.close();
				con.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();	
					
				}	
				
				
			}
		}
	
		
		
		
		@Test
		public void test5() {
			List> olList=new ArrayList>();
			getconnection();
			if(con!=null) {
				String sql="select *from tb_student";
				try {
					PreparedStatement ps=con.prepareStatement(sql);
					ResultSet  rs  = ps.executeQuery();
					while (rs.next()) {
						int id=	rs.getInt(1);//1
						String name=rs.getString(2);//张三
						int age=rs.getInt(3);//21
					HashMap oMap=new HashMap();
					oMap.put("id", id);
					oMap.put("name", name);
					oMap.put("age", age);
					olList.add((Map) oMap);
					
					}
					//关闭数据库
					rs.close();
					ps.close();
					con.close();
					
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
			
			//循环
			for (Map map : olList) {
				System.out.println(map);
				
			}
			
	//jdk
			List o =new ArrayList();
			o.add("abc");
			o.add("adfbc");
			o.add("abffc");
			//拉马 labdam 表达式
			o.forEach(s->System.out.println(s));
			
			
		}
			
			
				
			
		}
				
					
				
					

			
			
		

	

第三个构架包:druid数据库连接池插件 AND c3p0数据库连接池插件。 采用三个构架包编写增删改查。
@1c3p0数据库连接池插件。 第一步导入构架包。

 

第二步改文件的设置。打开c3p0-config.xml文件

  
  
  	
  	
    com.mysql.jdbc.Driver
    
    jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8 &zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
     
    root
    123456
    
     
    
    
    5
    10
    3000
  





   
    
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8 &zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
    root
    123456
    
    
    
   
    5
    8
    3000
  
你会发现这个构架包代替了下面的几行代码,
public void getConnection() {
		//1.加载插件
		try {
			Class.forName("com.mysql.jdbc.Driver");
			//2.准备连接数据的信息:要连接的数据库的地址      用户名     密码
			String url="jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimeZone=UTC";
			String username="root";
			String password="123456";
			//使用设备管理器类根据提供的信息连接数据库
			con=DriverManager.getConnection(url, username, password);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

c3p0-config.xml文件说明:

      
      
    com.mysql.jdbc.Driver
   
    jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8 &zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
     
    root
    123456
    
     
   
   
    5
    10
    3000
 

@2druid.properties。框架包和上面实现的内容是一样,这个架包提高了cpu的访问性能。
请看这个包的配置文件
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBechavior=convertToNull&serverTimeZone=UTC";
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000
package com.db.text;


import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Properties;

import javax.sql.DataSource;

import org.junit.Test;

import com.alibaba.druid.pool.DruidDataSourceFactory;


public class DruidDemo {
	
	@Test
	public void test1() {
		//需要输入流 用文件用/ 号开始
		InputStream is=DruidDemo.class
				.getClassLoader().getResourceAsStream("com/db/text/druid.properties");
		//创建一个		Properties对象 将输入流的内容》》prProperties
		Properties properties =new Properties();
		
		try {
			properties.load(is);
			
			
			DataSource ds=DruidDataSourceFactory.createDataSource(properties);
			
			Connection con=ds.getConnection();
		
			if(con!=null) {
				String sql="insert into tb_students(name,age) VALUES(?,?)";
				PreparedStatement ps=con.prepareStatement(sql);
				ps.setString(1, "你好 DruidDemo");
				ps.setInt(2, 42);
				int count=ps.executeUpdate();
				if (count>0) {
					System.out.println("添加成功");
				}
			}
					//并不是断开连接,而是将用完的对象放入连接池
					con.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			
			
			e.printStackTrace();
		}

		
		
	
		
		
	}

}


 

第四个构架包:JDBCTemplate数据库插件。 使用了四个架构包呢? 请看下面的代码。
第一步建立数据库的连接
static {
	//建立连接
				InputStream is=DruidDemo.class
						.getClassLoader().getResourceAsStream("com/db/text/druid.properties");
		
				Properties properties =new Properties();
			
				try {
					properties.load(is);
					DataSource ds=DruidDataSourceFactory.createDataSource(properties);
					jt=new JdbcTemplate(ds);
							//并不是断开连接,而是将用完的对象放入连接池
				} catch (Exception e) {
					e.printStackTrace();
				}
		
	}
第二步对数据库进行 增
@Test
	public void test1() {
		//增加语句
		String sql="insert into tb_students(name,age) VALUES(?,?)";
		int i=	jt.update(sql,"黄小年",45);
		if(i>0) {
			System.out.println("数据增加成功");
		}
@Test
public void text3() {
	String sql="DELETE FROM `studentdb`.`tb_student` WHERe ` id` = ?";
	int i=jt.update(sql ,1);
	if(i>0) {
		System.out.println("数据删除成功");
	}
@Test
public void text2() {
	String sql="UPDATE `studentdb`.`tb_students` SET `name` = ?WHERe `id` = ?";
	int i=jt.update(sql ,"你好二货",1001);
	if(i>0) {
		System.out.println("数据修改成功");
	}
@Test
public void text4() {
	String sql="select *from tb_students where id=?";
	Map map = (Map) jt.queryForMap(sql, 2);
	
		System.out.println(map);
	}

@Test
public void test5() {
	String sql="select *from tb_students";
	List> olList =jt.queryForList(sql);
	olList.forEach(map->System.out.println(map));
	
}
整个增删改查代码
package com.db.text;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.Properties;

import javax.sql.DataSource;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.sun.javafx.collections.MappingChange.Map;

public class JDBCTemplateDemo {
	public static JdbcTemplate  jt =null;
	
	
	static {
	//建立连接
				InputStream is=DruidDemo.class
						.getClassLoader().getResourceAsStream("com/db/text/druid.properties");
		
				Properties properties =new Properties();
			
				try {
					properties.load(is);
					DataSource ds=DruidDataSourceFactory.createDataSource(properties);
					jt=new JdbcTemplate(ds);
							//并不是断开连接,而是将用完的对象放入连接池
				} catch (Exception e) {
					e.printStackTrace();
				}
		
	}
	@Test
	public void test1() {
		//增加语句
		String sql="insert into tb_students(name,age) VALUES(?,?)";
		int i=	jt.update(sql,"黄小年",45);
		if(i>0) {
			System.out.println("数据增加成功");
		}
	
	}
	//修改数据
@Test
public void text2() {
	String sql="update tb_students set age=? where id=?";
	int i=jt.update(sql ,24,23);
	if(i>0) {
		System.out.println("数据修改成功");
	}
		
	}


@Test
public void text3() {
	String sql="DELETE FROM `studentdb`.`tb_student` WHERe ` id` = ?";
	int i=jt.update(sql ,1);
	if(i>0) {
		System.out.println("数据删除成功");
	}
	
	}


@Test
public void text4() {
	String sql="select *from tb_students where id=?";
	Map map = (Map) jt.queryForMap(sql, 2);
	
		System.out.println(map);
	}

@Test
public void test5() {
	String sql="select *from tb_students";
	List> olList =jt.queryForList(sql);
	olList.forEach(map->System.out.println(map));
	
}
	
	}

运行效果图展示页面

 

 

 

 

 

 

 

 总结:本次讲了四个小框架的内容。学习如逆水行舟,不进则退。不要浪费了自己的美好年华。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号