小言_互联网的博客

Android——GT Hinernate 教程(四) 更新表字段

392人阅读  评论(0)

让你在开发中爱不释手的 GT 包。关注GSLS官网,查看更多源码 ヾ(✿゚▽゚)ノ工具包。

所有文章 小编尽量让读者可以 直接 读懂 完全 复制粘贴,其中复杂或较多 的源码 会有 源码 并 贴上 github 网址

GT 类 里面的源码完全开源较多的中文注释,让更多的人直接读懂。

点个关注点个赞呗(〃'▽'〃),关注博主最新发布库: https://github.com/1079374315/GSLS_Tool

美帝 框架,让创造变得如此简单!

当你依赖GT库后就可以进行以下操作了

上一篇:GT Hibernate 教程(三) 添加新字段与删除旧字段

学习完上篇的 添加新字段与删除就字段,这篇我们来看看怎么更改字段名吧。

更改字段名当然也是在实体类中完成的啦,我们就将 LoginBean 表中的 role 该名为 loginRole 来举例子吧。


  
  1. @GT.Hibernate.GT_Entity //标识待Hibernate扫描的持久化类
  2. public class LoginBean {
  3. @GT.Hibernate.GT_Key(autoincrement = false) //标识主键属性并设置不自增
  4. private int loginID; //登录ID
  5. private String userName; //用户名称
  6. private String passWord; //用户密码
  7. @GT.Hibernate.GT_DatabaseField(oldTableValue = "role") //设置旧的字段名
  8. private String loginRole; //角色
  9. public LoginBean() {
  10. super();
  11. }
  12. ...get set 方法

改完后老规矩,将数据库版本 +1 即可:


  
  1. @GT.Annotations.GT_Activity(R.layout.activity_main)
  2. public class MainActivity extends GT.AnnotationActivity {
  3. @GT.Hibernate.Build(sqlName = "GT", sqlVersion = 4) //sqlVersion + 1
  4. private GT.Hibernate hibernate;
  5. @Override
  6. protected void initView(Bundle savedInstanceState) {
  7. build( this);
  8. }
  9. }

虽然GT库中 Hibernate 已经将SQL操作很简化了,当有些应用场景想自己写更新SQL语句,怎么弄?家人们,不慌不慌,我们接着来学习。

方法一:直接获取 SQLiteDatabase 对象进行原生SQL操作。(无需数据库库版本更改)


  
  1. @GT.Annotations.GT_Activity(R.layout.activity_main)
  2. public class MainActivity extends GT.AnnotationActivity {
  3. @GT.Hibernate.Build(sqlName = "GT", sqlVersion = 4)
  4. private GT.Hibernate hibernate;
  5. @Override
  6. protected void initView(Bundle savedInstanceState) {
  7. build( this);
  8. hibernate.getSqLiteDatabase().execSQL( "ALTER TABLE " + "UserBean" + " ADD userMarried BOOLEAN");
  9. }
  10. }

 

方法二:当对 GT.Hibernate.SQL_CODE 赋值后,在更新数据库的时候,优先执行 该SQL代码,略过实体类所有的变动。当GT.Hibernate.SQL_CODE 值等于 null 或者 "" 就又会按照实体类中的改变进行数据库更新操作,需要注意的是 GT.Hibernate.SQL_CODE 的摆放的位置。(需要数据库版本 + 1)

注解版摆放位置:


  
  1. @GT.Annotations.GT_Activity(R.layout.activity_main)
  2. public class MainActivity extends GT.AnnotationActivity {
  3. @GT.Hibernate.Build(sqlName = "GT", sqlVersion = 5) //sqlVersion + 1
  4. private GT.Hibernate hibernate;
  5. @Override
  6. protected void initView(Bundle savedInstanceState) {
  7. GT.Hibernate.SQL_CODE = "ALTER TABLE " + "UserBean" + " ADD userMarried BOOLEAN"; //添加新字段SQL代码
  8. build( this);
  9. }
  10. }

非注解摆放位置:


  
  1. public class MainActivity extends AppCompatActivity {
  2. private GT.Hibernate hibernate;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. GT.Hibernate.SQL_CODE = "ALTER TABLE " + "UserBean" + " ADD userMarried BOOLEAN"; //添加新字段SQL代码
  8. hibernate = new GT.Hibernate( this). //实例化 Hibernate
  9. init_1_SqlName( "GT") //设置数据库名称
  10. .init_2_SqlVersion( 5) //设置数据库版本号
  11. /**
  12. * @可接受参数类型:
  13. * 1.实体类的class: init_3_SqlTable(LoginBean.class) 表示:为该class创建表
  14. * 2.List<class> : init_3_SqlTable(list) 表示:为该 List 中的class创建表
  15. * 3.Set<class>: init_3_SqlTable(set) 表示:为该 Set 中的class创建表
  16. * 4.String : init_3_SqlTable("com.gsls.hibernatedome.entity") 表示:等待 Hibernate 扫描该路径下的所有带有 Hibernate 标识的实体类
  17. * 5.null : init_3_SqlTable(null) 表示:扫描本App中所有带有 Hibernate 标识的实体类
  18. */
  19. .init_3_SqlTable( null) //该数据库加载哪些表
  20. .init_4_Sql(); //执行数据库操作
  21. }
  22. }

总结:操作简单,上手极快,就是这么舒服。

下一篇:GT Hinernate 教程(五) 保存数据

 

 

 

 

 

 


转载:https://blog.csdn.net/qq_39799899/article/details/105942896
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场