java JDBC (四)
package cn.sasa.demo4; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; public class TestJDBCUtil {
public static void main(String[] args) throws SQLException {
Connection conn = JDBCUtil.getConn(); String sql = "SELECT * FROM product;";
PreparedStatement pstate = conn.prepareStatement(sql);
ResultSet rs = pstate.executeQuery(); ArrayList<Product> plist = new ArrayList<Product>();
while(rs.next()) {
Product p = new Product(rs.getInt("pid"),
rs.getString("pname"),
rs.getDouble("price"),
rs.getString("ptype"),
rs.getString("create_tm")
);
plist.add(p);
} JDBCUtil.close(conn, pstate, rs); for(var p : plist) {
System.out.println(p.getPname() +"\t"+ p.getPrice());
}
}
}
package cn.sasa.demo4; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /***
* JDBC 工具类
* @author THTF
*
*/
public class JDBCUtil { private JDBCUtil() {} private static Connection conn; static {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://192.168.0.207:3306/mydb";
String user = "root";
String pwd = "XXXXXXXXXXXXXX1";
conn = DriverManager.getConnection(url, user, pwd);
}catch(Exception ex){
throw new RuntimeException(ex + "数据库连接失败");
}
} /**
* 获得连接
*/
public static Connection getConn() {
return conn;
} /**
* 关闭资源
*/
public static void close(Connection con, Statement state, ResultSet rs) {
if(con != null) {
try {
con.close();
}catch(SQLException ex){ }
}
if(state != null) {
try {
state.close();
}catch(SQLException ex){ }
}
if(rs != null) {
try {
rs.close();
}catch(SQLException ex){ }
}
} public static void close(Connection con, Statement state) {
if(con != null) {
try {
con.close();
}catch(SQLException ex){ }
}
if(state != null) {
try {
state.close();
}catch(SQLException ex){ }
}
}
}
package cn.sasa.demo4; public class Product {
private int pid;
private String pname;
private double price;
private String ptype;
private String create_tm; public Product() {}
public Product(int pid, String pname,double price,
String ptype, String create_tm) {
this.pid = pid;
this.pname = pname;
this.price = price;
this.ptype = ptype;
this.create_tm = create_tm;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPtype() {
return ptype;
}
public void setPtype(String ptype) {
this.ptype = ptype;
}
public String getCreate_tm() {
return create_tm;
}
public void setCreate_tm(String create_tm) {
this.create_tm = create_tm;
}
}
java JDBC (四)的更多相关文章
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- java JDBC编程流程步骤
JDBC:Java Data Base Connection JDBC是用于运行sql语句并从数据库中获取新新的java API. JDBC是用来(让我们的程序)通过网络来操作数据库的,作用非常重要: ...
- JAVA JDBC(存储过程和事务管理)
1.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...
- Java JDBC学习实战(二): 管理结果集
在我的上一篇博客<Java JDBC学习实战(一): JDBC的基本操作>中,简要介绍了jdbc开发的基本流程,并详细介绍了Statement和PreparedStatement的使用:利 ...
- Java JDBC 数据库链接小结随笔
Java JDBC 数据库链接小结随笔 一.链接数据库的步骤 二.关于Statement 和 PrepareStatement 两者区别 用法 三.关于 ResultSet 的一些小结 四.自定义 ...
- Java的四种内部类
Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法 ...
- Java实验四
20145113 Java实验四 快捷键 之前没怎么记ISDEA的快捷键,但是熟练使用快捷键可以带来很多的便利,于是先开始学习一些常用的快捷键,就采用它默认的快捷键,这样后期就不会出现冲突,一些and ...
- Java中四种引用:强、软、弱、虚引用
这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...
- Java JDBC高级特性
1.JDBC批处理 实际开发中需要向数据库发送多条SQL语句,这时,如果逐条执行SQL语句,效率会很低,因此可以使用JDBC提供的批处理机制.Statement和PreparedStatemen都实现 ...
随机推荐
- 配置 -- php运行报Call to undefined function curl_init()的解决办法
很早之前就出现过这个问题,网上百度了下,答案千篇一律,都是说: 1.在php.ini中开启curl扩展 2.将php目录下的libeay32.dll.ssleay32.dll.php5ts.dll拷贝 ...
- (诊断)No module named MySQLdb
启动Keystone同步数据库时提示: -- :: TRACE keystone File , in dbapi -- :: TRACE keystone return __import__('MyS ...
- 占位 Bootstrap
中文网 http://www.bootcss.com/
- win7下安装Office2010老是出现提示安装MSXML6.10.1129.0,下载官方MSXML后提示安装成功却也安装不了
在注册表中增加以下信息: [HKEY_CLASSES_ROOT\TypeLib\{F5078F18-C551-11D3-89B9-0000F81FE221}][HKEY_CLASSES_ROOT\Ty ...
- linux dns 工具包 -- bind-utils
https://www.cnblogs.com/274914765qq/p/4817941.html
- [Hinton] Neural Networks for Machine Learning - RNN
Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 补充: 参见cs231n 2017版本,ppt写得 ...
- [TensorBoard] *Cookbook - Tensorboard
Ref: https://www.tensorflow.org/get_started/summaries_and_tensorboard 可视化对于Training的重要性,不言而喻. 代码示范 # ...
- Flask框架(2)-JinJa2模板
为了把业务逻辑和表现逻辑分开,Flask把表现逻辑移到JinJa2模板,模板是一个包含响应文本的文件.它用占位变量表示动态部分,其具体要从请求上下文才知道. 把真实值替换掉占位变量成为渲染,JinJa ...
- python的运行机制和版本区别
引用来自:here 解释型语言和编译型 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才 ...
- Go学习笔记(二)搭建Visual Studio Code调试环境
上一篇 Go学习笔记(一)安装Go语言环境 安装Visual Studio Code 这是目前我觉得最好用的文本编辑器了, https://code.visualstudio.com/ 中间有几部确认 ...