1.基本的数据库操作
这里连接数据库可以做成一个单独的utils类,我这里因为程序少就没有封装。
虽然现在jdbc被其他框架取代了,但这是框架的基础
如下:第一个是插入数据操作
package Databases; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test0812 { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub results(); } public static void results() throws Exception { String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/my"; String user="root"; String pwt=""; Connection con=null; Class.forName(driver); con=DriverManager.getConnection(url, user, pwt); Statement sta=con.createStatement(); // String sql="select * from user"; // ResultSet re=sta.executeQuery(sql); // while(re.next()) { // String username=re.getString("username"); // String password=re.getString("password"); // System.out.println(username+password); // } // 这是插入自增的处理指明对应的值,不然会报错 // String sql="insert into user(username,password) values('admin','123456')"; String sql="insert into user values('6','admins','1212')"; int n=sta.executeUpdate(sql); System.out.println(n); sta.close(); con.close(); } }
2.查询的操作:
这里也附带一个查询package Databases;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestMain { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub insert(); } public static void selects() throws Exception{ //要使用数据库先要连接数据库(jdbk),1.注册数据库 Class.forName("com.mysql.jdbc.Driver");
//us是自己建立的数据库名
String url="jdbc:mysql://localhost:3306/us"; String username="root"; String password=""; //连接数据库Connection中有一个方法 Connection con=DriverManager.getConnection(url,username,password); /** * 建立执行数据语句的平台 * Statement */
Statement sta=con.createStatement(); /** * 执行SQL查找 * executeQuery */ String sql="select * from us"; ResultSet rs=sta.executeQuery(sql); /** * ResultSet遍历用迭代器的 * 这里不需要直接用迭代器的,可以 * 直接用rs,next()实现 */ while(rs.next()){ String user=rs.getString("username"); String pwd=rs.getString("password"); System.out.println(user+pwd); } sta.close(); con.close(); } public static void insert()throws Exception{ /** * 连接数据库 */ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/us"; String names="root"; String price=""; Connection con=DriverManager.getConnection(url,names,price); /** * 建立执行数据语句的平台 * 双引号里再添加引号的时候用单引号或者用\隔开 */ Statement sta=con.createStatement(); /** * 执行添加sql语句 us是 */ String sql="insert into us(?,?) values('durian','ds')"; int n=sta.executeUpdate(sql); // 插入数据用的是executeUpdate()方法 /** * 数据库的查询 * @throws Exception */ public static void select() throws Exception{ //要使用数据库先要连接数据库(jdbk),1.注册数据库 Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/us"; String names="root"; String price=""; //连接数据库Connection中有一个方法 Connection con=DriverManager.getConnection(url,names,price); /** * 建立执行数据语句的平台 * Statement */ Statement sta=con.createStatement(); /** * 执行SQL查找 * executeQuery user是表名 */ String sql="select * from user"; ResultSet rs=sta.executeQuery(sql); // 查找用的是executeQuery() /** * ResultSet遍历用迭代器的 * 这里不需要直接用迭代器的,可以 * 直接用rs,next()实现 */ while(rs.next()){ // 这里的names要和数据库中的名字要相对应,否则报错 System.out.println(rs.getString("names")+" "+rs.getString("price")+" "+rs.getString("number")); } sta.close(); con.close(); } }
3.用动态方法添加数值得用法:这是和上面的程序是分开的没有任何联系
这是添加类
3.1
package Databases_1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner; public class FatherClass { /** * 添加3个商品的信息 */ private String names; private String price; private String num; public String getNames() { return names; } public void setNames(String names) { this.names = names; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } private Statement sta; private Connection con; public Statement getSta() { return sta; } public void setSta(Statement sta) { this.sta = sta; } public Connection getCon() { return con; } public void setCon(Connection con) { this.con = con; } /** * 设置了3个常量 */ private static final String URI = "jdbc:mysql://localhost:3306/us"; private static final String USER = "root"; private static final String PASS = ""; public static String getUri() { return URI; } public static String getUser() { return USER; } public static String getPass() { return PASS; } /** * 数据库常用方法 * @throws Exception */ Scanner in=new Scanner(System.in); public void numbers() throws Exception { //要使用数据库先要连接数据库(jdbk),1.注册数据库 Class.forName("com.mysql.jdbc.Driver"); //连接数据库Connection中有一个方法 setCon(DriverManager.getConnection(URI,USER,PASS)); /*con=DriverManager.getConnection(URI,USER,PASS);*/ /** * 建立执行数据语句的平台 * Statement */ setSta(getCon().createStatement()); /*sta=con.createStatement();*/ } /** * 添加的方法 */ public void inserts() throws Exception{ System.out.println("请输入你要添加的商品名称"); names=in.next(); System.out.println("请输入商品的价格"); price=in.next(); /*setPrice(in.next());*/ System.out.println("请输入商品数量"); num=in.next(); /*setNum(in.next());*/ numbers(); /** * 执行添加sql语句 */ String sql="insert into user values('"+names+"','"+price+"','"+num+"')"; int n=sta.executeUpdate(sql); System.out.println("添加成功"); sta.close(); con.close(); } /** * 删除的方法 */ public void delete() throws Exception{ numbers(); System.out.println("请输入你要删除的商品名称"); names=in.next(); String sql="delete into user where names='"+names+"'"; System.out.println("删除成功"); select(); } /** * 修改的方法 */ // public void updata() throws Exception { // numbers(); // System.out.println("请输入你要修改的商品信息(1.修改商品名称 2.修改商品价格 3.修改商品数量)"); // int n=in.hashCode(); // switch (n) { // case 1: // System.out.println("你要修改成的"); // break; // case 2: // // break; // case 3: // // break; // // } // } /** * 查找的方法 */ public void select() throws Exception{ numbers(); /** * 执行SQL查找 * executeQuery */ String sql="select * from user"; ResultSet rs=sta.executeQuery(sql); /** * ResultSet遍历用迭代器的 * 这里不需要直接用迭代器的,可以 * 直接用rs,next()实现 */ while(rs.next()){ System.out.println(rs.getString("names")+" "+rs.getString("price")+" "+rs.getString("number")); } sta.close(); con.close(); } }
3.2我这里设置了一个验证的效果:
package Databases_1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner; /** * 登陆系统 * @author xixu * */ public class Login { private String us; private String pw; public void Scanners() { Scanner in=new Scanner(System.in); System.out.println("请输入登陆的超市账号"); us=in.next(); System.out.println("请输入登陆的密码"); pw=in.next(); } public boolean selects() throws Exception{ Scanners(); //要使用数据库先要连接数据库(jdbk),1.注册数据库 Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/us"; String username="root"; String password=""; //连接数据库Connection中有一个方法 Connection con=DriverManager.getConnection(url,username,password); /** * 建立执行数据语句的平台 * Statement */ Statement sta=con.createStatement(); /** * 执行SQL查找 * executeQuery */ String sql="select * from us"; ResultSet rs=sta.executeQuery(sql); /** * ResultSet遍历用迭代器的 * 这里不需要直接用迭代器的,可以 * 直接用rs,next()实现 */ while(rs.next()){ String user=rs.getString("username"); String pwd=rs.getString("password"); if(us.equals(user)&&pw.equals(pwd)) { return true; } } sta.close(); con.close(); return false; } }
3.3测试类
package Databases_1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Mains { public static void main(String[] args) throws Exception{ Login lo=new Login(); boolean s=lo.selects(); if(s) { System.out.println("登陆成功"); FatherClass fa=new FatherClass(); fa.inserts(); /*fa.select(); fa.delete();*/ } else { System.out.println("你的账号输入有误,请核对好账号密码"); } } }