MySQL初步学习3:Eclipse中使用
来源:互联网 发布:虚幻4和unity3d 编辑:程序博客网 时间:2024/06/06 16:25
MySQL驱动程序添加到eclipse中后,就可以尝试在eclipse中使用数据库了。
1、加载驱动程序
驱动程序地址:com.mysql.jdbc.Driver
用Class类加载驱动程序,如下
package test;public class TestClass { public static String Driver="com.mysql.jdbc.Driver"; //数据库驱动软件中地址 public static void main(String[] args) { // TODO Auto-generated method stub try { Class.forName(Driver); //加载驱动程序 System.out.println("success"); }catch(Exception w) { w.printStackTrace(); System.out.println("****"); } }}
输出“success”表示加载成功。
2、连接和关闭数据库
eclipse中提供了DriverManager类连接数据库,通过getConnection()方法取得连接对象,返回一个Connection对象。
getConnection()方法中的参数为MySQL的连接地址、用户名和密码。
MySQL数据库的连接地址格式为
jdbc:mysql://IP地址:端口号/数据库名称
如果是本机中的数据库,IP地址为localhost,端口号为3306。
我的数据库名:root,密码:123456。建立了一个数据库bb,并在其中建表b2,添加数据。查询效果:
之后的操作都基于这个数据库。所以我的连接地址为:jdbc:mysql://localhost:3306/bb
在eclipse中连接和关闭数据库:
package test;import java.sql.Connection;import java.sql.DriverManager;public class StartClass { public static final String Driver="com.mysql.jdbc.Driver"; public static final String URL="jdbc:mysql://localhost:3306/bb"; //格式 jdbc:mysql://IP地址:端口号/数据库名称 public static void main(String args[]) { Connection con=null; try { Class.forName(Driver); }catch(Exception e) { e.printStackTrace(); } try { con=DriverManager.getConnection(URL,"root","123456"); //数据库地址,数据库用户名,密码 System.out.println("***"); }catch(Exception e) { e.printStackTrace(); } System.out.println(con); try { con.close(); //关闭数据库 }catch(Exception e) { e.printStackTrace(); } }}
输出不为空,表示连接成功:
***com.mysql.jdbc.JDBC4Connection@5910e440
建议用完数据库后删除,避免占用较大资源。
3、数据库更新数据
数据的更新需要用Statement接口完成,通过Connection接口中提供的createStatement实例化。
3.1、数据插入
首先是实例化一个Statement,然后是数据库建表中的数据插入命令,将该命令添加到Statement类的executeUpdate()方法中。
看一个例子:
package test;import java.sql.*;public class InsertClass { public static void main(String[] args) { //插入数据 Connection con=null; Statement state=null; //使用statement接口 String str=" insert into b2 (id,age,name,sex) values (5,19,'Jone','nan') "; //插入语句 //这里的插入数据也可以用变量带入 try { Class.forName("com.mysql.jdbc.Driver"); //驱动程序 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bb","root","123456"); //连接数据库 state=con.createStatement(); //实例化statement对象 state.executeUpdate(str); //插入数据 state.close(); con.close(); System.out.println("success"); }catch(Exception e) { e.printStackTrace(); System.out.println("*****"); } }}
运行成功后,在命令行中查询:
3.2、数据修改
和插入语句步骤相同,只要把SQL语句改为update即可。
public class UpdateClass {
//更新数据
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con=null;
Statement state=null; //使用statement接口
String name="Jane"; int age=19; int id=5; //String str="update b2 set name='Jane',age=17 where id=5"; String str= " update b2 set name=' " + name + " ',age= " + age + " where id=" +id ; //两条更新语句效果相同。 try { Class.forName("com.mysql.jdbc.Driver"); //驱动程序 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bb","root","123456"); //连接数据库 state=con.createStatement(); //实例化statement对象 state.executeUpdate(str); //插入数据 state.close(); con.close(); System.out.println("success"); }catch(Exception e) { e.printStackTrace(); System.out.println("*****"); }}
}
运行成功后,结果:
3.3、数据删除
同理,修改数据库指令。
package test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class DeleteClass {//删除数据 public static void main(String[] args) { Connection con=null; Statement state=null; //使用statement接口 String str=" delete from b2 where id=5 "; //插入语句 //这里的插入数据也可以用变量带入 try { Class.forName("com.mysql.jdbc.Driver"); //驱动程序 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bb","root","123456"); //连接数据库 state=con.createStatement(); //实例化statement对象 state.executeUpdate(str); //删除数据 state.close(); con.close(); System.out.println("success"); }catch(Exception e) { e.printStackTrace(); System.out.println("*****"); } }}
运行成功后,再查询结果如下:
4、查询数据
查询数据库数据,需要用到select语句,同时,查询到的记录也应使用ResultSet进行接收。
package test;import java.sql.*;public class SelectClass {//查询数据 public static void main(String[] args) { Connection con=null; Statement state=null; ResultSet rs=null; String str="select * from b2"; try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bb","root","123456"); state=con.createStatement(); rs=state.executeQuery(str); //查询结果用ResultSet接收 while(rs.next()) { //将指针指向下一行 int id=rs.getInt("id"); //读取内容 int age=rs.getInt("age"); String name=rs.getNString("name"); String sex=rs.getString("sex"); System.out.println("id:"+'\t'+id+'\t' + "age:"+'\t'+age+'\t' + "name:"+'\t'+name+'\t' + "sex:"+'\t' +sex); int id1=rs.getInt(1); //按表中列的编号读取,与上一种方法效果相同,建议用这种 int age1=rs.getInt(2); String name1=rs.getNString(3); String sex1=rs.getString(4); System.out.println("id:"+'\t'+id1+'\t' + "age:"+'\t'+age1+'\t' + "name:"+'\t'+name1+'\t' + "sex:"+'\t' +sex1); } rs.close(); state.close(); con.close(); }catch(Exception e) { e.printStackTrace(); System.out.println("*****"); } }}
运行结果:
id: 1 age: 16 name: sd sex: gaid: 1 age: 16 name: sd sex: gaid: 2 age: 18 name: nalk sex: sjdid: 2 age: 18 name: nalk sex: sjdid: 3 age: 0 name: sd sex: nullid: 3 age: 0 name: sd sex: nullid: 4 age: 0 name: wdv sex: nullid: 4 age: 0 name: wdv sex: null
5、预处理操作
PreparedStatement接口
SQL语句中的内容暂时不设置,用“?”来代指,等用到时再进行设置。
如: select name,age from user where id=? 。
预处理的设置是通过setString()、setInt()等方法实现。其中的参数,第一个表示要设置的索引编号,也即表中第几列的字段,第二个表示设置的内容。
package test;import java.sql.*;public class PrepareClass { //预处理,用PreparedStatement接口实现 public static void main(String args[]) { Connection con=null; PreparedStatement ps=null; Statement state=null; ResultSet rs=null; String str="insert into b2 values (?,?,?,?)"; //用?定义预处理的项 String str1="select * from b2"; String str2="delete from b2 where id=?"; try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bb","root","123456"); ps=con.prepareStatement(str); ps.setInt(1, 5); //实例化预处理,第一个变量指定索引的编号,第二项为设置的内容。 ps.setInt(2, 15); ps.setString(3, "JAM"); ps.setString(4, "nv"); ps.executeUpdate(); state=con.createStatement();//查询结果 rs=state.executeQuery(str1); while(rs.next()) { //将指针指向下一行 int id1=rs.getInt(1); //按列的编号读取 int age1=rs.getInt(2); String name1=rs.getNString(3); String sex1=rs.getString(4); System.out.println("id:"+'\t'+id1+'\t' + "age:"+'\t'+age1+'\t' + "name:"+'\t'+name1+'\t' + "sex:"+'\t' +sex1); } ps=con.prepareStatement(str2); ps.setInt(1, 5); ps.executeUpdate(); System.out.println("---------------------------------------------------------------"); rs=state.executeQuery(str1); while(rs.next()) { //将指针指向下一行 int id1=rs.getInt(1); //按列的编号读取,与上一种方法效果相同,建议用这种 int age1=rs.getInt(2); String name1=rs.getNString(3); String sex1=rs.getString(4); System.out.println("id:"+'\t'+id1+'\t' + "age:"+'\t'+age1+'\t' + "name:"+'\t'+name1+'\t' + "sex:"+'\t' +sex1); } rs.close(); ps.close(); state.close(); con.close(); }catch(Exception e) { e.printStackTrace(); System.out.println("*****"); } }}
运行结果如下:
id: 1 age: 16 name: sd sex: gaid: 2 age: 18 name: nalk sex: sjdid: 3 age: 0 name: sd sex: nullid: 4 age: 0 name: wdv sex: nullid: 5 age: 15 name: JAM sex: nv---------------------------------------------------------------id: 1 age: 16 name: sd sex: gaid: 2 age: 18 name: nalk sex: sjdid: 3 age: 0 name: sd sex: nullid: 4 age: 0 name: wdv sex: null
- MySQL初步学习3:Eclipse中使用
- Eclipse中git使用初步
- Sae中mysql的初步使用
- Eclipse使用初步
- MySQL数据库学习初步
- mysql数据库初步学习
- 初步学习 mysql
- 初步学习mysql
- MySQL使用初步
- MySQL 安装初步使用
- 关于eclipse的初步使用
- git在eclipse初步使用
- Eclipse安装后初步使用
- Eclipse的ndk初步使用
- JDBC(MYSQL)初步学习
- Eclipse中使用JDBC连接MYSQL数据库
- MySQL初步学习1:配置MySQL
- android中contentProvider初步学习
- 计算圆的面积和周长
- 做题的方式简单点
- Android面试常客--四大组件之Activity
- 转载(阮一锋)Flex 布局教程:语法篇
- Java 修饰符
- MySQL初步学习3:Eclipse中使用
- 最大似然估计详解
- 讯飞文字转语音
- 10.30-10.31欢乐爆零赛总结
- 页面带有多个ifrme 的时候 为iframe 内的元素绑定事件 history 返回事件!
- 淘宝招聘邮箱
- 《上瘾》
- Wavelet Transform 提取低频信息的足迹
- 2-1 众数问题 算法