java通过JDBC获取MySQL的数据实现
来源:互联网 发布:ug nx软件 编辑:程序博客网 时间:2024/05/18 20:11
由慕课网听之,后简单的捋了一下,记下来,备后用
要从eclipse中的java代码获取到MySQL数据库中的信息,Java提供了JDBC作为桥梁来实现
首先需要在我们的项目中导入JDBC相关的包
下载:mysql-connector-java-5.0.8-bin.jar文件
需要将其导入,可以直接右键项目进行导入,但是当移动项目到其它地方时,该文件不会随之移动;另外一种方法是在项目下面新建lib文件(new—> floder),再将文件拖到lib里面,选copy,然后右键文件,Build Path 进行导入
其次是Java代码
如下(我都做了详细的注释)
public class DBUtil {/* * URL中的127.0.0.1为本机地址,回送地址,因为MySQL服务是在本机上,java程序也在本机上, * imooc为MySQL中一个数据库,指定后,后面便是对其中的表进行操作 * USER是MySQL用户的用户名,PASSWORD为密码 */private static final String URL="jdbc:mysql://127.0.0.1:3306/imooc";private static final String USER="root";private static final String PASSWORD="23232";public static void main(String[] args) throws Exception {//1.加载驱动程序/* * 在com.mysql.jdbc.Driver中有一个静态的方法,new一个Driver,并将其加载到DriverManager中,代码如下 * static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException(“Can’t register driver!”); } } * Class.forName()方法初始化指定的类(会执行其中的static...),并返回该类的对象 */Class.forName("com.mysql.jdbc.Driver");/*2.获得数据库的连接 * 在这其中的将URL,USER,PASSWORD传入DriverManager中的Driver对象(在JDBC中), * 通过JDBC返回一个连接给java的sql */Connection con=DriverManager.getConnection(URL, USER, PASSWORD);//3.通过数据库的连接操作数据库,实现增删改查Statement statement=con.createStatement();//查询数据,其中输入sql语句ResultSet rSet=statement.executeQuery("SELECT name,age FROM tabletest");//rSet.next()返回的是一个布尔类型的值,而且将指针指向下一条记录while(rSet.next()){/* * 将获得的数据输入到控制台上,注意得到的方法,因为之前查询时获得的是两个值,一个string,一个int, * 使用其中的参数为string的方法,将值得名称传进去 */System.out.println(rSet.getString("name")+","+rSet.getInt("age"));}}}
这样便实现了简单的连接,获取数据库的信息;
下面再附上操作数据库的代码
import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import java.util.Map;import com.test.Godess.Godes;import com.test.jdbcconnect.DBUtil;public class GoddessMod {public void addGoddess(Godes g) throws Exception {// 每次对数据库操作的时候都要建立连接Connection connection = DBUtil.getConnect();// 下面的3块是一个完整体系// (1) sql语句字符串,并没有实际的赋值,这样可以抽象化// 这里并没有给id赋值,因为在表中id为主键,且设为自动递增String sql = "" + "INSERT INTO tabletest" + "(name,age,birthday) VALUES(" + "?,?,?)";// (2)预处理,类似于sql中的存储过程PreparedStatement pres = connection.prepareStatement(sql);// (3)赋值pres.setString(1, g.getName());pres.setInt(2, g.getAge());pres.setDate(3, new Date(g.getBirthday().getTime()));// 执行,增,删,改 ,用下面的语句,查用executeQuery();pres.execute();}public void updateGoddess(Godes goddess) throws Exception {Connection connection = DBUtil.getConnect();String sql = "UPDATE tabletest SET name=?,age=?,birthday=? WHERE id=?";PreparedStatement prem = connection.prepareStatement(sql);prem.setString(1, goddess.getName());prem.setInt(2, goddess.getAge());prem.setDate(3, new Date(goddess.getBirthday().getTime()));prem.setInt(4, 1);prem.execute();}public void delGoddess(Integer id) throws SQLException {Connection connection = DBUtil.getConnect();String sql = "DELETE FROM tabletest WHERE id=?";PreparedStatement prem = connection.prepareStatement(sql);prem.setInt(1, id);prem.execute();}public List<Godes> query() throws Exception {Connection connection = DBUtil.getConnect();// 3.通过数据库的连接操作数据库,实现增删改查Statement statement = connection.createStatement();// 查询数据,其中输入sql语句ResultSet rSet = statement.executeQuery("SELECT name,age FROM tabletest");List<Godes> goddessList = new ArrayList<Godes>();Godes goddess;// rSet.next()返回的是一个布尔类型的值,而且将指针指向下一条记录while (rSet.next()) {/* * 将获得的数据输入到控制台上,注意得到的方法,因为之前查询时获得的是两个值,一个string,一个int, * 使用其中的参数为string的方法,将值得名称传进去 */// System.out.println(rSet.getString("name")+","+rSet.getInt("age"));goddess = new Godes();goddess.setName(rSet.getString("name"));goddess.setAge(rSet.getInt("age"));goddessList.add(goddess);}return goddessList;}public List<Godes> queryForContdition(List<Map<String, Object>> perm) throws Exception {Connection connection = DBUtil.getConnect();// 使用stringBuilder不同于字符串(每次修改都会创建开销),对于多次修改的,用StringBuilder好StringBuilder sql = new StringBuilder();sql.append("SELECT * FROM tabletest WHERE 1=1 ");// sql.append(" AND "+"name"+"="+"'Tony'");for (Map<String, Object> map : perm) {sql.append(" AND " + map.get("attr") + " " + map.get("relation") + " " + map.get("value"));}// 注意与上面查询的写法// 由于没有?,可以省略第三步PreparedStatement statement = connection.prepareStatement(sql.toString());// 这个为查询,因此不同于其它三种ResultSet rSet = statement.executeQuery();Godes goddess;List<Godes> goddessList = new ArrayList<Godes>();while (rSet.next()) {goddess = new Godes();goddess.setId(rSet.getInt("id"));goddess.setName(rSet.getString("name"));goddess.setAge(rSet.getInt("age"));goddess.setBirthday(rSet.getDate("birthday"));goddessList.add(goddess);}return goddessList;}}
参考
关于com.mysql.jdbc.Driver
Class.forName()用法
127.0.0.1百科
0 0
- java通过JDBC获取MySQL的数据实现
- java通过JDBC获取MySQL的数据实现
- Java通过JDBC操纵mysql的例子
- JAVA通过JDBC连接Mysql获取中文输出乱码解决方法
- JAVA通过JDBC链接数据库获取数据(一)
- java jdbc 获取最新插入的数据
- 通过JDBC的DatabaseMetaData获取数据库元数据
- 通过JDBC的DatabaseMetaData获取数据库元数据
- Java 通过 JDBC 连接Mysql
- Java通过jdbc连接MySQL
- Java通过JDBC连接MySQL
- 通过JDBC获取数据库表元数据
- Java实现Mysql的jdbc连接例子
- 用Java实现了MySql的jdbc
- Java 通过JDBC连接Mysql数据库的方法和实例
- Java 通过JDBC连接Mysql数据库的方法和实例
- Java 通过JDBC连接Mysql数据库的方法和实例
- java 通过JDBC连接Mysql数据库的方法和实例
- 添加bitcode的支持:iOS App,App Extension以及Watch App
- hdoj2059龟兔赛跑(DP)
- 【HDU 杭电 1260 Tickets】
- AngularJS之表达式
- UVA-439 Knight Moves
- java通过JDBC获取MySQL的数据实现
- VNC服务器空间不足:shell脚本检查回收站大小,提示清理
- 记录 boost 中 使用 asio 编写 server和client代码片段
- image.xx.com 通过haproxy 跳转到内部图片服务器
- SVN
- centos7端口操作
- [AFHTTPRequestSerializer requestWithMethod:URLString; 'Invalid parameter not satisfying: URLString'
- 数据结构实验之数组三:快速转置
- 别管我,我要养生了,因为我老了