使用jdbc连接mysql
JDBC连接MYSQL数据库:
package cn.outofmemory.test;import java.sql.Connection;import java.sql.DriverManager;public class Mysql {
public static void main(String arg[]) {
try {
Connection con = null; //定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL
System.out.print("yes");
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage());
}
}}
Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装, 可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37jrelibext 重启eclispe 就可以在JRE系统库中看到,也可以通过build path导入工程。
con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句, 返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码)
写入一条数据
package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null; //定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL
Statement stmt; //创建声明
stmt = con.createStatement();
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
int ret_id;
if (res.next()) {
ret_id = res.getInt(1);
System.out.print(ret_id);
}
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage());
}
}}
stmt.executeUpdate INSERT; DELETE; UPDATE;语句都用executeUpdate函数来操作
stmt.executeQuery SELECT;语句都用stmt.executeQuery函数来操作
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()"); 查询最后插入数据的ID号,返回ResultSet res;对象
删除和更新数据
package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null; //定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL
Statement stmt; //创建声明
stmt = con.createStatement();
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
int ret_id;
if (res.next()) {
ret_id = res.getInt(1);
System.out.print(ret_id);
}
//删除一条数据
String sql = "DELETE FROM user WHERE id = 1";
long deleteRes = stmt.executeUpdate(sql); //如果为0则没有进行删除操作,如果大于0,则记录删除的条数
System.out.print("DELETE:" + deleteRes);
//更新一条数据
String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
long updateRes = stmt.executeUpdate(updateSql);
System.out.print("UPDATE:" + updateRes);
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage());
}
}}
删除和更新数据都使用stmt.executeUpdate函数。 删除和更新数据都会返回一个Long的结果,如果为0,则删除或者更新失败,如果大于0则是操作删除的记录数
查询语句
package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null; //定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL
Statement stmt; //创建声明
stmt = con.createStatement();
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
int ret_id;
if (res.next()) {
ret_id = res.getInt(1);
System.out.print(ret_id);
}
//删除一条数据
String sql = "DELETE FROM user WHERE id = 1";
long deleteRes = stmt.executeUpdate(sql); //如果为0则没有进行删除操作,如果大于0,则记录删除的条数
System.out.print("DELETE:" + deleteRes);
//更新一条数据
String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
long updateRes = stmt.executeUpdate(updateSql);
System.out.print("UPDATE:" + updateRes);
//查询数据并输出
String selectSql = "SELECT * FROM user";
ResultSet selectRes = stmt.executeQuery(selectSql);
while (selectRes.next()) { //循环输出结果集
String username = selectRes.getString("username");
String password = selectRes.getString("password");
System.out.print("rnrn");
System.out.print("username:" + username + "password:" + password);
}
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage());
}
}}
查询语句使用stmt.executeQuery函数
- rs.absolute() //绝对位置,负数表示从后面数
- rs.first()第一条
- rs.last()最后一条
- rs.previoust()前一条
- rs.next()后一条
- rs.beforeFirst()第一条之前
- rs.afterLast()最后之后
- rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast
另外,诸位在看以上程序时,不知有没有发现一个漏洞,执行后他没有关闭数据库连接。
- [Silverlight动画]转向行为 - 避开行为
- CaseStudy(showcase)界面篇-desing设计界面
- [Silverlight动画]转向行为 - 寻找行为
- 【数字货币】数字黄金
- [Silverlight动画]转向行为 - 转向机车
- [Silverlight动画]转向行为 - 机车
- 微信、小游戏与未来
- [Silverlight动画]转向行为 - 2D向量
- [Silverlight动画]转向行为 - 介绍
- WCF技术剖析之十七:消息(Message)详解(中篇)
- flash游戏引擎整理
- [Silverlight动画]转向行为 - 群落
- [Silverlight动画]转向行为 - 路径跟随
- [Silverlight动画]转向行为 - 漫游行为
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 为并发而生的 ConcurrentHashMap,基于 Java8 分析
- 使用Kustomize定制Helm Chart
- 踩坑了,JDK8 中 HashMap 依然会产生死循环问题!
- 使用shell-operator实现Operator
- 教你用Python 操作 PDF 的几种方法
- 如何在K8s上设置生产级的EFK?(上)
- IntelliJ IDEA 构建 Maven 多模块工程项目
- GDP越高就越幸福吗?用Python分析《世界幸福指数报告》后我们发现…
- 图解:什么是哈希?
- 【Python基础】一文看懂 Pandas 中的透视表
- 彻底干掉恶心的 SQL 注入漏洞, 一网打尽!
- 某小型公司持续集成工具 Jenkins 实践
- 使用RBAC Impersonation简化Kubernetes资源访问控制
- 求求你别再用 MySQL offset 和 limit 分页了?
- 短视频带货源码,获取购物车中所有商品列表并加载显示