package dao;
import java.sql.Connection;
import java.sql.DriverManager;
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 bean.Hero;
public class HeroDAO {
public int getTotal() {
int total = 0 ;
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
Statement s = c.createStatement();
String sql = "select count(*) from hero" ;
ResultSet rs = s.executeQuery(sql);
while (rs.next()) {
total = rs.getInt( 1 );
}
System.out.println( "total:" + total);
s.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return total;
}
public void add(Hero hero) {
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
String sql = "insert into hero values(null,?,?,?)" ;
PreparedStatement ps = c.prepareStatement(sql);
ps.setString( 1 , hero.name);
ps.setFloat( 2 , hero.hp);
ps.setInt( 3 , hero.damage);
ps.execute();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
int id = rs.getInt( 1 );
hero.id = id;
}
ps.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void update(Hero hero) {
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
String sql = "update hero set name= ?, hp = ? , damage = ? where id = ?" ;
PreparedStatement ps = c.prepareStatement(sql);
ps.setString( 1 , hero.name);
ps.setFloat( 2 , hero.hp);
ps.setInt( 3 , hero.damage);
ps.setInt( 4 , hero.id);
ps.execute();
ps.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete( int id) {
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
Statement s = c.createStatement();
String sql = "delete from hero where id = " + id;
s.execute(sql);
s.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Hero get( int id) {
Hero hero = null ;
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
Statement s = c.createStatement();
String sql = "select * from hero where id = " + id;
ResultSet rs = s.executeQuery(sql);
if (rs.next()) {
hero = new Hero();
String name = rs.getString( 2 );
float hp = rs.getFloat( "hp" );
int damage = rs.getInt( 4 );
hero.name = name;
hero.hp = hp;
hero.damage = damage;
hero.id = id;
}
s.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hero;
}
public List<Hero> list() {
return list( 0 , Short.MAX_VALUE);
}
public List<Hero> list( int start, int count) {
List<Hero> heros = new ArrayList<Hero>();
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8" ,
"root" , "admin" );
String sql = "select * from hero order by id desc limit ?,? " ;
PreparedStatement ps = c.prepareStatement(sql);
ps.setInt( 1 , start);
ps.setInt( 2 , count);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Hero hero = new Hero();
int id = rs.getInt( 1 );
String name = rs.getString( 2 );
float hp = rs.getFloat( "hp" );
int damage = rs.getInt( 4 );
hero.id = id;
hero.name = name;
hero.hp = hp;
hero.damage = damage;
heros.add(hero);
}
ps.close();
c.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return heros;
}
}
|