import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;publicclassTestJDBC{publicstaticvoidmain(String[] args){
Statement s = null;
Connection c = null;try{/*Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.*///新版驱动自动注册。所以以下两句没有必要。//Class.forName("com.mysql.jdbc.Driver");//System.out.println("数据库驱动加载成功");
c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/eesy?useSSL=false","root","123456");
System.out.println("数据库连接成功,打印");
System.out.println(c);//输出com.mysql.cj.jdbc.ConnectionImpl@1877ab81。打印的是实例对象的全名和地址
s = c.createStatement();//用于执行SQL语句
String sql ="select * from account";
ResultSet re = s.executeQuery(sql);//.next()方法查询下一条while(re.next()){int id = re.getInt(1);
String name = re.getString(2);float money = re.getFloat(3);
System.out.printf("%d\t%s\t%f\n",id,name,money);}
sql ="insert into account values(null,'i_am_name',23)";
s.execute(sql);/*插入名为count0到count9的十个数据*/for(int i =0; i <10; i++){
sql ="insert into account values(null,"+"'count"+i +"'"+",23)";//合并语句就是 "insert into account values(null, counti,23)";
s.execute(sql);}}catch(SQLException e){
e.printStackTrace();}finally{
System.out.println("i am finally");if(s != null)try{
s.close();}catch(SQLException e){
e.printStackTrace();}if(c != null){try{
c.close();}catch(SQLException e){
e.printStackTrace();}/*也可以使用try-with-resource的方式自动关闭连接,因为Connection和Statement都实现了AutoCloseable接口*/}}}}
3.实现增删改查
//和上面的例子类似。//增
sql ="insert into account values(null,'name',23)";//删
sql ="delete from account where age = 23"//改
sql ="update account set name = 'marry' where id = 1";//查
sql ="select * from account";
分页查询:select * from account limit start count; 查询从start开始的count条数据。注意数据库中第一条内容下标是0。用于数据量太多内存可能不够的情况。